Skip to main content

Toolkit for working with NSW CaseLaw decisions

Project description

nswcaselaw

A Python toolkit for downloading and extracting textual data from the NSW CaseLaw website at https://www.caselaw.nsw.gov.au/

Usage

Sample usage in Python code or a Jupyter notebook

from nswcaselaw.search import Search
import json

query = Search(courts=[13], catchwords="succession", pause=1)

for decision in query.results():
  decision.fetch()
  print(json.dumps(decision.values, indent=2))

url = query.url

CLI tool

To generate a CSV of search results

nswcaselaw --courts 13 --catchwords succession --output cases.csv

To download complete decisions as JSON documents

nswcaselaw --courts 13 --catchwords succession --output cases.csv  --download ./decisions

To list available courts and tribunals (NOTE: full web scraping is only tested on Supreme Court decisions)

nswcaselaw --list courts
nswcaselaw --list tribunals

Command-line parameters:

-h, --help            show help message and exit
--version             show program's version number and exit
-v, --verbose         set loglevel to INFO
-vv, --very-verbose   set loglevel to DEBUG
--list {courts,tribunals}
                      Print a list of courts or tribunals
--dump DUMP           Dir to dump HTML for debugging
--test-parse TEST_PARSE
                      Test scraper on an HTML document and print results as
                      JSON
--body BODY           Full text search
--title TITLE         Case name
--before BEFORE
--catchwords CATCHWORDS
--party PARTY
--citation CITATION   This must include square brackets
--startDate STARTDATE
                      Earliest decision date
--endDate ENDDATE     Lastest decision date
--fileNumber FILENUMBER
--legislationCited LEGISLATIONCITED
--casesCited CASESCITED
--pause PAUSE         Seconds to wait between requests: default 10
--courts COURTS [COURTS ...]
                      Select one or more by index number (see --list courts)
--tribunals TRIBUNALS [TRIBUNALS ...]
                      Select one or more by index number (see --list
                      tribunals)
--uris URIS           CSV file with caselaw URIs to download
--output OUTPUT       Search results will be written to this file as CSV
--download DOWNLOAD   Save decisions as JSON to the directory DOWNLOAD
--limit LIMIT         Max results

Installation

Follow the instructions at https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html to install Conda.

To create a conda environment with Jupyter and nswcaselaw

conda create -n mycaselaw jupyter
conda activate mycaselaw
pip install nswcaselaw

Once the dependencies are installed

jupyter notebook

will start Jupyter and open a browser. Any notebooks you create in this will be able to import the nswcaselaw module as shown above

from nswcaselaw.search import Search

To install nswcaselaw without Jupyter, follow the same steps to install Conda, and then create a new environment as follows

conda create -n mycaselaw
conda activate mycaselaw
pip install nswcaselaw

You should now be able to use the nswcaselaw command from a terminal (on Mac or Linux) or the Anaconda prompt (on Windows).

Acknowledgements

This project is partially funded by a 2022 University of Sydney Research Accelerator (SOAR) Prize awarded to Ben Chen.

Note

This project has been set up using PyScaffold 4.3. For details and usage information on PyScaffold see https://pyscaffold.org/.

Project details


Download files

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

Source Distribution

nswcaselaw-0.1.4.tar.gz (47.1 kB view details)

Uploaded Source

File details

Details for the file nswcaselaw-0.1.4.tar.gz.

File metadata

  • Download URL: nswcaselaw-0.1.4.tar.gz
  • Upload date:
  • Size: 47.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for nswcaselaw-0.1.4.tar.gz
Algorithm Hash digest
SHA256 b141b085afc8ec1c7dd245a943be00870574a77644bad569f03e597cb2cee41b
MD5 de909ad58f8d260a6353363355bbbd7b
BLAKE2b-256 6fa9b820e9102abb3c41d954d643d2d17b37d34b529e6e66f72d63c38b403816

See more details on using hashes here.

Supported by

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