.. _use_cases:
===========
Use Cases:
===========
Creating aware datetime objects
-------------------------------
check out the example script in ``examples/aware_datetime.py``
Getting a location's time zone offset
--------------------------------------
check out the example script in ``examples/get_offset.py``
also see the `pytz Doc `__.
Django
------
querying the timezone name in a ``Django`` view:
.. code-block:: python
def find_timezone(request, lat, lng):
lat = float(lat)
lng = float(lng)
try:
timezone_name = tf.timezone_at(lng=lng, lat=lat)
except ValueError:
# the coordinates were out of bounds
pass # {handle error}
if timezone_name is None:
# no timezone matched
...
# do something with timezone_name
...
.. _parse_data:
Use other data
--------------
File converter script
*********************
This package includes the ``file_converter.py`` script to parse timezone data and compile the binary data files required
by the ``timezonefinder`` package.
This script is built for processing the specific ``geojson`` format of the default data: `timezone-boundary-builder `__.
Any other data in this format can also be parsed:
::
python /path/to/timezonefinder/scripts/file_converter.py \
[-inp /path/to/input.json] \
[-out /path/to/output_folder] \
[--zone-id-dtype {uint8,uint16}]
Per default the script parses the ``combined.json`` from its own parent directory (``timezonefinder``) into data files inside its parent directory.
Use ``--zone-id-dtype`` (or set ``TIMEZONEFINDER_ZONE_ID_DTYPE``) when your dataset
contains more than 256 distinct timezones so the generated binaries use
``uint16`` storage instead of the default ``uint8``.
How to use the ``timezonefinder`` package with data files from another location is described :ref:`HERE `.
Data parsing shell script
*************************
The included ``parse_data.sh`` shell script simplifies downloading the latest version of
`timezone-boundary-builder `__
data and parsing in with ``file_converter.py``.
It supports downloading and parsing the ``timezone-boundary-builder`` version WITHOUT ocean timezones.
This is useful if you do not require ocean timezones and want to have smaller data files.
::
/bin/bash /path/to/timezonefinder/parse_data.sh