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
- Issues: https://github.com/datadesk/latimes-statestyle/issues
- Packaging: https://pypi.python.org/pypi/latimes-statestyle
- Testing: https://travis-ci.org/datadesk/latimes-statestyle
- Coverage: https://coveralls.io/r/datadesk/latimes-statestyle
- 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 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'
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.