Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A Python library that standardizes the names of U.S. states
Python
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
statestyle
.coveragerc
.gitignore
.travis.yml
MANIFEST.in
README.md
build.py
requirements.txt
setup.py
test.py
tox.ini

README.md

8""""8                           8""""8
8      eeeee eeeee eeeee eeee    8      eeeee e    e e     eeee
8eeeee   8   8   8   8   8       8eeeee   8   8    8 8     8
    88   8e  8eee8   8e  8eee        88   8e  8eeee8 8e    8eee
e   88   88  88  8   88  88      e   88   88    88   88    88
8eee88   88  88  8   88  88ee    8eee88   88    88   88eee 88ee 

A Python library that standardizes the names of U.S. states

Build Status PyPI version Coverage Status

Features

  • Submit a state’s name, postal code or Associated Press abbreviation or FIPS code and receive a clean object with all other formats as attributes.
  • State objects also provide the “stateface” code for ProPublica’s web font of state shapes

Getting started

Getting started is as easy as…

$ pip install latimes-statestyle

Then start feeding it your data.

>>> import statestyle
# Get by postal code
>>> obj = statestyle.get('CA')

If there is a match you can access the clean, standardized attributes.

# Here's the full name of the state
>>> print obj.name
California
# The U.S. postal code
>>> print obj.postal
CA
# The Associated Press style abbreviation
>>> print obj.ap
Calif.
# The FIPS ID code
>>> print obj.fips
6
# The type of geographic area
>>> print obj.type
state
# The ProPublica stateface code
>>> obj.stateface
"E"

You can pass in any of the attributes for a match.

# Like the FIPS code
>>> obj = statestyle.get(6)
# And the same attributes available
>>> print obj.name
California

Here's what happens when you submit something that doesn't have a match.

>>> statestyle.get("foo")
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "statestyle/__init__.py", line 27, in get
    raise ValueError("The state you requested does not exist")
ValueError: The state you requested does not exist

And here's a couple ways you can convert the object it returns to a dictionary.

>>> o = statestyle.get("CA")
>>> dict(o)
{'name': 'California', 'ap': 'Calif.', 'fips': '6', 'postal': 'CA', 'type': 'state', 'stateface': 'E'}
>>> o.to_dict()
{'name': 'California', 'ap': 'Calif.', 'fips': '6', 'postal': 'CA', 'type': 'state', 'stateface': 'E'}
# You can also access the attributes as dictionary keys if you want
>>> o['name']
'California'

Contributing

If you would like to add another feature or change existing data, edit statestyle/data.csv and then run python build.py, which will remake the data file imported by the library.

Something went wrong with that request. Please try again.