{"id":20466098,"url":"https://github.com/withprecedent/courtpy","last_synced_at":"2026-05-27T20:32:01.914Z","repository":{"id":77163375,"uuid":"179582984","full_name":"WithPrecedent/CourtPy","owner":"WithPrecedent","description":"CourtPy offers flexible, accessible tools for parsing and analysis of court opinions","archived":false,"fork":false,"pushed_at":"2019-08-28T18:03:35.000Z","size":5023,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-05T12:34:11.387Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WithPrecedent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-04-04T21:55:54.000Z","updated_at":"2023-08-22T07:44:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"b9b79337-d84e-493e-aa82-3c72e143125c","html_url":"https://github.com/WithPrecedent/CourtPy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WithPrecedent/CourtPy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WithPrecedent%2FCourtPy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WithPrecedent%2FCourtPy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WithPrecedent%2FCourtPy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WithPrecedent%2FCourtPy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WithPrecedent","download_url":"https://codeload.github.com/WithPrecedent/CourtPy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WithPrecedent%2FCourtPy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33583394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T13:21:38.433Z","updated_at":"2026-05-27T20:32:01.897Z","avatar_url":"https://github.com/WithPrecedent.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CourtPy\r\n\r\n![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)\r\n[![Build Status](https://img.shields.io/travis/with_precedent/courtpy.svg)](https://travis-ci.org/with_precedent/courtpy) \r\n\r\nCourtPy is a python package which allows a user to prepare, parse, wrangle, merge, engineer, analyze, and graph data derived from court opinions. It can download and integrate data from other sources including NOMINATE, Martin-Quinn, the FJC Integrated Database, and FJC Judicial Biography Database.\r\n\r\nThe package is presently in alpha and is nearly feature complete.\r\n\r\nCourtPy is the master file that allows a user to apply any or all of the pipeline stages.\r\n\r\nCourtPrepper takes raw court case files downloaded from Lexis-Nexis, CourtListener, and Caselaw Access and organizes them into the proper format and structure for the parser. It also downloads and/or prepares data from external sources to be merged with the case data.\r\n\r\nCourtParser divides court opinions into core sections and searches for strings and regular expressions in the opinions.\r\n\r\nCourtWrangler further parses and organizes the data while combining the data with biographical information about the judges and contextual political data.\r\n\r\nCourtMerger allows the user to combine their data with other third-party data such as the Federal Judicial Center's Integrated Database or with the various case sources that have already been parsed.\r\n\r\nCourtEngineer encodes, prepares, and feature engineers the data for machine learning algorithms.\r\n\r\nCourtAnalyzer applies major machine learning models to the engineered data including algorithms (presently limited to sklearn models and others, such as xgboost, which have sklearn wrappers). GPU support is available for parallelization.\r\n\r\nCourtPlotter graphs the findings of the analyzer using some common methods.\r\n\r\nThe package is designed to be accessible to non-python programmers. This has guided CourtPy's development from its inception. To that end, most of the the specific information (such as search terms and variables) is stored in .csv files that are used by the scripts. This allows the package to be used by people who need only use a .csv editor such as Microsoft Excel. Users can add their own search terms and variable names as well as remove default variables included in the package.\r\n\r\nCourtPy will always be open-source and, consistent with the GitHub ethos, I welcome contributors.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwithprecedent%2Fcourtpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwithprecedent%2Fcourtpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwithprecedent%2Fcourtpy/lists"}