Skip to main content

FlexibleDate

This package can parse potentially dirty date data to create a FlexibleDate object. This package can also compare FlexibleDate objects to give them a score on how close they are to one another. Finally, this package can combine various FlexibleDates for the same event into a FlexibleDate that best represents all date information about that event.

Parsing

The package can parse strings for any day, month, or year information. If any of these attributes are not found, they are set to None.

from FlexibleDate.FlexibleDate import createFlexibleDate, FlexibleDate

fd:FlexibleDate = createFlexibleDate('Do you remember the 21st night of sep?')
print(fd) # None-9-21
print(fd.__repr__()) # FlexibleDate(likelyYear=None, likelyMonth=9, likelyDay=21)

Comparing FlexibleDates

It is often very useful to check how close two dates are, especially given two dates for the same event might be written different, usually because of an accident in remembering day, month, or year. Therefore, it can be useful to check how close the dates are using a scoring system.

Two FlexibleDate objects could potentially be describing the same event, even when they are not identical, especially in the case of birth dates on headstones, as the person who knew it best has no way to correct the relative who is ordering the engraving.

The attributes likelyDay and likelyMonth are compared using the absolute value distance between their respective counterparts in the other FlexibleDate. On the otherhand, the part of the score for likelyYear is based on the difference between the two years, with the score assigned logarithmically staggered based on how far back it is (as records often get less reliable the farther back you go). A positive score is generally a good indicator that the FlexibleDates are not drastically different.

from FlexibleDate.FlexibleDate import compareTwoDates, FlexibleDate

fdA = FlexibleDate(likelyDay=21, likelyMonth=9, likelyYear=1900)
fdB = FlexibleDate(likelyDay=None, likelyMonth=9, likelyYear=1902)

score = compareTwoDates(fdA, fdB)
print(score) # 20.0

Combining FlexibleDates

If there are various (sometimes slightly off) FlexibleDates for a specific event (someone's birth, for example), it can be useful to have a diffinitive FlexibleDate that best represents the event.

from FlexibleDate.FlexibleDate import createFlexibleDate, combineFlexibleDates

fdA = createFlexibleDate('Do you remember the 21st night of sep?')
fdB = createFlexibleDate('22 September 2024')
fdC = createFlexibleDate('21 Octo')

dates = [fdA, fdB, fdC]

fdD = combineFlexibleDates(dates=dates)
print(fdD) # 2024-9-21

Enjoy!

Download files

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

Source Distribution

flexibledate-1.0.30.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flexibledate-1.0.30-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file flexibledate-1.0.30.tar.gz.

File metadata

  • Download URL: flexibledate-1.0.30.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for flexibledate-1.0.30.tar.gz
Algorithm Hash digest
SHA256 33196c51911e17348e79fad09f9dbcbcff94cb1e2a249cbc48fa564c7c28d8ad
MD5 c84b86cdc5ed4a7a70af12c7f0953fe4
BLAKE2b-256 7466efeac0347f24dfde2d9466a8f27f9318a5937b5ddc4a690961418cafbb9c

See more details on using hashes here.

File details

Details for the file flexibledate-1.0.30-py3-none-any.whl.

File metadata

  • Download URL: flexibledate-1.0.30-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for flexibledate-1.0.30-py3-none-any.whl
Algorithm Hash digest
SHA256 ef434c8932b4f0e39b0d82e4d4093d327ab61d41d1cacc0a1cefc59d8b946a63
MD5 40161b1289a1c5f1552b92613485974b
BLAKE2b-256 6909dbfd2a73b94381a98c6057024426f6b62cc302ac8128d96a08ebb625b65b

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.33

2 files

This release

1.0.30 This release

2 files

1.0.25

2 files

1.0.24

2 files

1.0.23

2 files

1.0.21

2 files

1.0.17

2 files

1.0.14

2 files

1.0.13

2 files

1.0.9

2 files

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