A working parser for the US Code's hierarchy, and a work-in-progress parser for the full content.
Branch: master
Clone or download
Latest commit 21c7a18 Jun 8, 2014
Type Name Latest commit message Commit time
Failed to load latest commit information.
download Merged the downloading into the python script, documented the --force… Apr 8, 2013
table3 Moving @wpli's table3 parser to uscode. Jun 7, 2014
tasks Revise chapter/level 'citation' format to e.g. usc/title/51/subtitle/… Aug 12, 2013
test renaming gpolocator to uscode Sep 26, 2012
uscode Helper function to initialize a title by filename Sep 26, 2012
LICENSE move to CC0, add contributing file and readme snippet Mar 17, 2014
README.md move to CC0, add contributing file and readme snippet Mar 17, 2014
__init__.py Re-importing again, much smaller Sep 10, 2012
requirements.txt whitespace Apr 2, 2013
run Switching to command line flag code from unitedstates/congress and un… Apr 2, 2013


Parsing the US Code

A parser for the US Code's structure, and a work-in-progress parser for the US Code's full content.


Create a virtual environment:

virtualenv virt
source virt/bin/activate
pip install -r requirements.txt

Getting the structure of the Code

To output the hierarchy of the US Code to STDOUT, in JSON:

./run structure

The script will first download the


  • --year: "uscprelim" (the default), or a specific year version of the Code (e.g. "2011")
  • --title: Do only a specific title (e.g. "5", "5a", "25")
  • --sections: Return a flat hierarchy of only titles and sections (no intervening layers)
  • --debug: Output debug messages only, and no JSON output (dry run)
  • --force: Force a re-download of the US Code. Use this flag if you're automatically running the script at an interval.


    "level": "title",
    "number": "1",
    "subparts": [
        "level": "chapter",
        "name": "RULES OF CONSTRUCTION",
        "number": "1",
        "subparts": [
            "citation": "usc/1/1",
            "level": "section",
            "name": "Words denoting number, gender, and so forth",
            "number": "1"
            "citation": "usc/1/2",
            "level": "section",
            "name": "\u201cCounty\u201d as including \u201cparish\u201d, and so forth",
            "number": "2"

Getting the content of the Code (work-in-progress)

To get at the content of the Code:

  • Run download/gpolocator.sh 2011 to download all GPO Locator files for 2011.
  • Run download/pdf.sh to download all pdf files for 2011.

Run the debug script with the title as the first argument and the offset of the parsed node in the parsed title (yes, that makes no sense--just enter a number, like 3).

source virt/bin/activate # if not already activated
./run debug title=[title] offset=[offset]

So to view title 11, section 1, which is the definitions section of the bankruptcy code, run:

./run debug title=11 offset=3

Public domain

This project is dedicated to the public domain. As spelled out in CONTRIBUTING:

The project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.

All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.