Skip to main content
==========
Time range
==========


.. image:: https://img.shields.io/pypi/v/time_range.svg
:target: https://pypi.python.org/pypi/time_range

.. image:: https://img.shields.io/travis/tunnell/time_range.svg
:target: https://travis-ci.org/tunnell/time_range

.. image:: https://readthedocs.org/projects/time-range/badge/?version=latest
:target: https://time-range.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status


.. image:: https://pyup.io/repos/github/tunnell/time_range/shield.svg
:target: https://pyup.io/repos/github/tunnell/time_range/
:alt: Updates

.. image:: https://pyup.io/repos/github/tunnell/time_range/python-3-shield.svg
:target: https://pyup.io/repos/github/tunnell/time_range/
:alt: Python 3

.. image:: https://api.codacy.com/project/badge/Grade/54ccc5b06b2142baade214ad0da62ac4
:alt: Codacy Badge
:target: https://app.codacy.com/app/tunnell/time_range?utm_source=github.com&utm_medium=referral&utm_content=tunnell/time_range&utm_campaign=badger

Methods for handling time range overlaps for scheduling, taxes, and physics applications.


* Free software: GNU General Public License v3
* Documentation: https://time-range.readthedocs.io.


Tutorial
--------


.. code:: ipython3

import time_range as tr

Specify a year

.. code:: ipython3

year = 2017

For this year, define all your trips by defining where they are and when
the trip started. This is an ordered list so the end date is inferred
from the next trip in the list. For the start date, the first number is
month, the second is the day, the third is the hour, and so forth.

.. code:: ipython3

trips = ({'country': 'NL', 'start': (1, 1)},
{'country': 'ES', 'start': (3, 4, 14, 0)},
{'country': 'NL', 'start': (4, 11, 19, 50)},
{'country': 'US', 'start': (5, 22, 12), 'state': 'NJ'},
{'country': 'US', 'start': (6, 30, 12, 30), 'state': 'TX'},
{'country': 'US', 'start': (7, 3, 16, 28), 'state': 'NJ'})



Determine your time distribution over the year as follows for just
working days:

.. code:: ipython3

series = tr.time_distribution(trips=trips, year=2004)
series




.. parsed-literal::

working_day 251.0
(NL, NL) 73.0
(ES, ES) 26.0
(US, NJ) 150.0
(US, TX) 2.0
dtype: float64



And your fraction of income in each place as follows:

.. code:: ipython3

tr.fraction_of_year(trips=trips, year=2004, income=100000)




.. raw:: html

<div>
<style>
.dataframe thead tr:only-child th {
text-align: right;
}

.dataframe thead th {
text-align: left;
}

.dataframe tbody tr th {
vertical-align: top;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>days</th>
<th>fraction_of_year</th>
<th>income</th>
</tr>
</thead>
<tbody>
<tr>
<th>working_day</th>
<td>251.0</td>
<td>1.000000</td>
<td>100000.000000</td>
</tr>
<tr>
<th>(NL, NL)</th>
<td>73.0</td>
<td>0.290837</td>
<td>29083.665339</td>
</tr>
<tr>
<th>(ES, ES)</th>
<td>26.0</td>
<td>0.103586</td>
<td>10358.565737</td>
</tr>
<tr>
<th>(US, NJ)</th>
<td>150.0</td>
<td>0.597610</td>
<td>59760.956175</td>
</tr>
<tr>
<th>(US, TX)</th>
<td>2.0</td>
<td>0.007968</td>
<td>796.812749</td>
</tr>
</tbody>
</table>
</div>



Lastly, if you're just curious about the working days of that year:

.. code:: ipython3

tr.get_working_days(2013).head()




.. raw:: html

<div>
<style>
.dataframe thead tr:only-child th {
text-align: right;
}

.dataframe thead th {
text-align: left;
}

.dataframe tbody tr th {
vertical-align: top;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>working_day</th>
</tr>
</thead>
<tbody>
<tr>
<th>2013-01-01</th>
<td>False</td>
</tr>
<tr>
<th>2013-01-02</th>
<td>True</td>
</tr>
<tr>
<th>2013-01-03</th>
<td>True</td>
</tr>
<tr>
<th>2013-01-04</th>
<td>True</td>
</tr>
<tr>
<th>2013-01-05</th>
<td>False</td>
</tr>
</tbody>
</table>
</div>






Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage




=======
History
=======

0.3.0 (2018-03-24)
------------------

* Functioning enough for taxes at least.

0.1.0 (2018-02-11)
------------------

* First release on PyPI.

Metadata

Release files for time-range 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for time-range 0.3.0
File Size Uploaded Provenance
time_range-0.3.0.tar.gz 12.2 kB Without provenance Details

Release files / time_range-0.3.0.tar.gz

Download URL time_range-0.3.0.tar.gz
Size 12.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1fef6121fe9f2bc989e76bef262a691132dc85626ebcb910a0ae9cf16c8ebe19
BLAKE2b-256 checksum
How to use checksums
5db3ca39f851352d4b53cdf9c5d98317fb76f19261a621c3d5f6fb4bdb9ee8bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.14.2 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.14.0 CPython/3.5.3

Security for time-range 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page