Skip to main content

Effortless date span parsing and management.

Project description

datespan

GitHub license PyPI version PyPI Downloads GitHub last commit unit tests build


A Python package for effortless date span parsing and management. Aimed for data analysis and processing, useful in any context requiring date & time spans.

pip install datespan
import pandas as pd
from datespan import parse, DateSpan
df = pd.DataFrame({"date": pd.date_range("2024-01-01", "2024-12-31")})

dss = parse("April 2024 ytd") # Create a DateSpanSet, same as 'DateSpanSet("April 2024 ytd")'
dss.add("May")                # Add full month May of the current year
dss.add("today")              # Add the current day from 00:00 to 23:59:59
dss += "previous week"        # Add a full week from Monday 00:00 to Sunday 23:59:59
dss -= "January"              # Remove full month January of the current year

print(len(dss))               # returns the number of contained nonconsecutive DateSpans
print(dss.to_tuples())        # returns a list of (start, end) tuples representing the DateSpanSet
print(dss.to_sql("date"))     # returns an SQL WHERE clause fragment
print(dss.filter(df, "date")) # returns a DataFrame filtered by the DateSpanSet on column 'date'

Classes

DateSpan represents a single date or time span, defined by a start and an end datetime. Provides methods to create, compare, merge, parse, split, shift, expand & intersect DateSpan objects and /or datetime, dateor time objects.

DateSpanSet represents an ordered and redundancy free collection of DateSpan objects, where consecutive or overlapping DateSpan objects get automatically merged into a single DateSpan object. Required for fragmented date span expressions like every 2nd Friday of next month.

DateSpanParser provides parsing for arbitrary date, time and date span strings in english language, ranging from simple dates like '2021-01-01' up to complex date span expressions like 'Mondays to Wednesday last month'. For internal DateTime parsing and manipulation, the DateUtil library is used.

Part of the CubedPandas Project

The 'dataspan' package has been carved out from the CubedPandas project, a library for easy, fast & fun data analysis with Pandas dataframes, as DataSpan serves a broader scope and purpose and can be used independently of CubedPandas.

Bugs, Issues, Feature Requests

Please report any bugs, issues, feature requests, questions or feedback on the GitHub Issues page. It will be highly appreciated and will help to improve the package.

Documentation

Documentation will be available from 0.3.0 release on.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datespan-0.2.9.tar.gz (42.4 kB view details)

Uploaded Source

Built Distribution

datespan-0.2.9-py3-none-any.whl (45.9 kB view details)

Uploaded Python 3

File details

Details for the file datespan-0.2.9.tar.gz.

File metadata

  • Download URL: datespan-0.2.9.tar.gz
  • Upload date:
  • Size: 42.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for datespan-0.2.9.tar.gz
Algorithm Hash digest
SHA256 ed3f532eefd792cd9301b1b90c3e7f15d622051258cb215d9f502327656c5ec3
MD5 e182a5e0542325c2664973eb2484901e
BLAKE2b-256 13b29f17bb1456093279fb9eb7c9ed0d156c930f7fde02ece9b5636bf94f14a8

See more details on using hashes here.

File details

Details for the file datespan-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: datespan-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 45.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for datespan-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e616b1c0ef27cb8af95f48a1e78f9182fbd44275bf300433ca37239e9e155fbd
MD5 4351a1a1097a2d9a54227da02394e41a
BLAKE2b-256 d1410941ca59ca14c831c944c139d5c5cbbbd29e1938fb9740785bacff063bcd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page