Skip to main content

The National Archives: Find Case Law

This repository is part of the Find Case Law project at The National Archives. For more information on the project, check the documentation.

Python Utilities

PyPI Libraries.io dependency status for latest release

This repository predominantly contains information about the courts in the Find Case Law project.

pypi name: ds-caselaw-utils python import name: ds_caselaw_utils

Examples

from ds_caselaw_utils import neutral_url
neutral_url("[2022] EAT 1")  # '/eat/2022/4'

from ds_caselaw_utils import courts

courts.get_all() # return a list of all courts

courts.get_by_param("ewhc/ch") # get a court by its parameter value

courts.get_selectable() # returns a list of all courts that are whitelisted to
                        # appear as searchable options

courts.get_listable_groups() # returns a grouped list of courts that are whitelisted to
                             # be listed publicly

courts.get_listable_courts() # returns a list of all *courts* (ie not tribunals)
                             # which are whitelisted to be listed publicly

courts.get_listable_tribunals() # return a list of all *tribunals*  which are
                                # whitelisted to be listed publicly

The list of courts is defined in src/ds_caselaw_utils/data/court_names.yml. The format is as follows:

- name: high_court # Internal name of a group of courts to be displayed together
  display_name: "High Court" # An optional public facing name for this group.
  is_tribunal: false # Whether this group contains courts or tribunals
  courts: # List of courts to be displayed under this group
    - # An internal code for this court:
      code: EWHC-SeniorCourtsCosts
      # The public facing name of the court:
      name: High Court (Senior Courts Costs Office)
      # An optional alternative wording for use when displayed in grouped format (defaults to 'name'):
      grouped_name: Senior Court Costs Office
      # A URL to link to for more information on this court:
      link: https://www.gov.uk/courts-tribunals/senior-courts-costs-office
      # A regex matching neutral citations for this court's judgments:
      ncn: \[(\d{4})\] (EWHC) (\d+) \((SCCO)\)
      # The canonical parameter value used in searches for this court:
      param: "ewhc/scco"
      # Any additional parameter aliases which display judgments from this court:
      extra_params: ["ewhc/costs"]
      # The year of the first judgment we have on file for this court:
      start_year: 2003
      # The year of the last judgment we have on file for this court
      # (optional, defaults to current year):
      end_year: ~
      # Whether to expose this court publicly as selectable in search filters:
      selectable: true
      # Whether to expose this court publicly in listings:
      listable: true
      # Whether this court has ended yet
      ended: false

Requirements

The environment you develop this repo in requires the following to be installed:

  • python 3.12 (as the project is pinned to python 3.12)
  • poetry (as this is used for depdenency management and virtual environment management)
  • pre-commit (to install git hooks defined in .pre-commit-config.yaml)

Getting set up

  • Run pre-commit install inside the root directory of the repo to install the git hooks defined in .pre-commit-config.yaml.
$ poetry shell
$ poetry install

Testing

While in a poetry shell:

$ poetry run pytest

Building

$ rm -rf dist
$ poetry build
$ python3 -m twine upload --repository testpypi dist/* --verbose

Release process

When making a new release, update the changelog in the release pull request.

The package will only be released to PyPI if a new tag is created. A merge to main alone will not trigger a release to PyPI.

If the release fails to push to PyPI, you can delete the tag with git pull, git push --delete origin v1.2.3 and try again.

To create a release:

  1. Update the version number in pyproject.toml
  2. Create a branch release/v{major}.{minor}.{patch}
  3. Update CHANGELOG.md and pyproject.toml for the release
  4. Commit and push
  5. Open a PR from that branch to main
  6. Get approval on the PR
  7. Tag the HEAD of the PR v{major}.{minor}.{patch} and push the tag
  8. Merge the PR to main and push
  9. Add a new release to Github for that tag for consistency's sake

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ds_caselaw_utils-4.7.0.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ds_caselaw_utils-4.7.0-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

File details

Details for the file ds_caselaw_utils-4.7.0.tar.gz.

File metadata

  • Download URL: ds_caselaw_utils-4.7.0.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for ds_caselaw_utils-4.7.0.tar.gz
Algorithm Hash digest
SHA256 0fc56818e63de953bb476c95c5fa1b47d781f6684150c0d76a9e749ebc40daeb
MD5 20b3d58490dcb0c75b80bbd830fad62d
BLAKE2b-256 863099ff0142c00228d2f222982423c569a62760b1e88da0411c0fb888ab1cca

See more details on using hashes here.

Provenance

The following attestation bundles were made for ds_caselaw_utils-4.7.0.tar.gz:

Publisher: publish.yml on nationalarchives/ds-caselaw-utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ds_caselaw_utils-4.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ds_caselaw_utils-4.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e820242c94be4b4ac46527639312b6b62aa2e61ffdfffdafabdee4f5a37eae9
MD5 0e0e865db6930a9514efdef36d9db3b5
BLAKE2b-256 871c610510f220ef3158722a06f319f5dcb4c5fa32ab7740a9fdf93ebac24a38

See more details on using hashes here.

Provenance

The following attestation bundles were made for ds_caselaw_utils-4.7.0-py3-none-any.whl:

Publisher: publish.yml on nationalarchives/ds-caselaw-utils

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

4.9.0

2 files

4.8.0

2 files

This release

4.7.0 This release

2 files

4.6.0

2 files

4.5.2

2 files

4.5.0

2 files

4.4.0

2 files

4.3.1

2 files

4.3.0

2 files

4.2.1

2 files

4.2.0

2 files

4.1.1

2 files

4.1.0

2 files

4.0.0

2 files

3.0.0

2 files

2.10.0

2 files

2.9.0

2 files

2.8.2

2 files

2.8.1

2 files

2.8.0

2 files

2.7.1

2 files

2.7.0

2 files

2.6.0

2 files

2.5.0

2 files

2.4.7

2 files

2.4.6

2 files

2.4.5

2 files

2.4.4

2 files

2.4.3

2 files

2.4.2

2 files

2.4.1

2 files

2.4.0

2 files

2.3.0

2 files

2.2.1

2 files

2.2.0

2 files

2.1.0

2 files

2.0.1

2 files

2.0.0

2 files

1.7.1

2 files

1.7.0

2 files

1.6.0

2 files

1.5.7

2 files

1.5.6

2 files

1.5.5

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.5.0

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.6

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page