Skip to main content

Effortless date span parsing and management.

Project description

datespan - effortless date span parsing and management

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


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 object
dss.add("May")                # Add a full month of the current year (e.g. 2024 in 2024)
dss.add("today")              # Add the current day from 00:00:00 to 23:59:59
dss += "previous week"        # Add a full week from Monday 00:00:00 to Sunday 23:59
dss -= "January"              # Remove the full month of January 2024

print(len(dss))               # returns the number of nonconsecutive DateSpans
print(dss.to_sql("date"))     # returns an SQL WHERE clause fragment
print(dss.filter(df, "date")) # returns filtered DataFrame # vectorized filtering of column 'date' of a DataFrame

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.

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.1.tar.gz (40.9 kB view details)

Uploaded Source

Built Distribution

datespan-0.2.1-py3-none-any.whl (44.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for datespan-0.2.1.tar.gz
Algorithm Hash digest
SHA256 eef806c7b1a5031142aac557c627a9b5712b05d6e8dd45afda97d43234f4527a
MD5 d9be0d3e6b4a3326dd57ad85fd032d0c
BLAKE2b-256 8437e282c6017c620f1074536a6009cc00ceb69a7f402999d73a4ae7fd23f18b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for datespan-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a2f10b2ad8cd1ebde9c8da890b93f9486c6959a13f561aab6e921cd6af2b673
MD5 f1cc7cc15145842f2a111ff72f1b7b71
BLAKE2b-256 ad9cea1e4bc27890e11f8f039183a3fb28db04c2f641e9600192264f8689dde3

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