Package: courts-db
Courts-DBCourts-DB is an open source repository to organize a db of all courts current and historical.
It was built for use in Courtlistener.com.Its main goal is to interface with CL to identify historical and current courts
by string.  It incldues mechanisms to filter results based on dates and/or whether it is a bankruptcy court.Further development is intended and all contributors, corrections and additions are welcome.BackgroundFree Law Project built this database using the metadata (case names, dates etc.)
of over 16 millions data points.  This data represents hundreds of hours of
research and testing.  We believe to be the most extensive open dataset of its kind.QuickstartYou can feed in a courtlistener Court_ID or string to find a court.from courts_db import find_court, find_court_by_id

find_court_by_id("mass")

returns:
[{
    "regex": [
        "${sjc} ${ma}?",
        "${ma} ${sjc}",
        "Supreme Court Of ${ma}",
        "State Of ${ma} Supreme Court"
    ],
    "name_abbreviation": "Mass. Sup. Jud. Ct.",
    "dates": [
        {
            "start": "1692-01-01",
            "end": null
        }
    ],
    "name": "Massachusetts Supreme Judicial Court",
    "level": "colr",
    "case_types": ["All"],
    "system": "state",
    "examples": [
        "Supreme Court Of Massachusetts",
        "Supreme Judicial Court Of Massachusetts",
        "Massachusetts Supreme Judicial Court"
    ],
    "court_url": "http://www.mass.gov/courts/sjc/",
    "type": "appellate",
    "id": "mass",
    "location": "Massachusetts",
    "citation_string": "Mass."
}]from courts_db import find_court

mass_sjc = find_court(u"Massachusetts Supreme Judicial Court")

returns: ["mass"]Filtering on less unique strings is built in.Feed a date string or bankruptcy flag to filter on those parameters
For example District of Massachusetts is non unique and returns both the Federal District Court of Massachusetts and its Bankruptcy Courtfrom datetime import datetime as dt

courts_db.find_court(
    u"District of Massachusetts",
)

returns ==> ["mad", "mab"]

courts_db.find_court(
    u"District of Massachusetts",
    bankruptcy=True,
)

returns ==> ["mab"]

courts_db.find_court(
    u"District of Massachusetts",
    date_found=dt.strptime("10/02/1975", "%m/%d/%Y"),
)

returns ==> ["mad"]Some Notes on the DataSomethings to keep in mind as you are reviewing the data.The data is devided into two files courts.json and variables.jsonCourts.json holds the bulk of the informationVariables.json holds templates for large numbers of regexes.Fieldsid— string; Courtlistener Court Identifiercourt_url— string; url for court websiteregex—  array; regexes patterns to find courtsexamples—  array; regexes patterns to find courtsname— string; full name of the courtname_abbreviation— string; court name abbreviationsdates— Array; Contains start date, end date and notes on date rangesystem— string; Defines main jurisdiction, ex. State, Federal, Triballevel— string; code defining where court is in system structure, ex. COLR (Court of Last Resort), IAC (Intermediate Appellate Court), GJC (General Jurisdiction Court), LJC (Limited Jurisdiction Court)location— string; refers to the physical location of the main courttype— string; Identifies kind of cases handled (Trial, Appellate, Bankruptcy, AG)citation_string— string; Identifies the string used in a citation to refer to the courtnotes— string; A place to put notes about a courtInstallationInstalling courts-db is easy.pip install courts_dbOr install the latest dev version from githubpip install git+https://github.com/freelawproject/courts-db.git@masterFutureContinue to improve and expand the dataset.Add filtering mechanisms by state, reporters, citation(s), judges, counties and cities.DeploymentIf you wish to create a new version, the process is:Update version info insetup.pyand commit it.Tag the commit with the version number.To proceed manuallyPush your commit. CI should take care of the rest.To proceed manuallyInstall the requirements in requirements_dev.txtSet up a config file at ~/.pypircGenerate a universal distribution that worksin py2 and py3 (see setup.cfg)python setup.py sdist bdist_wheelUpload the distributionstwine upload dist/* -r pypi (or pypitest)LicenseThis repository is available under the permissive BSD license, making it easy and safe to incorporate in your own libraries.Pull and feature requests welcome. Online editing in Github is possible (and easy!)