Skip to main content

Infers date format from examples, by using a series of pattern matching and rewriting rules to compute a 'best guess' datetime.strptime format string give a list of example date strings.

Project description

hi-dateinfer

Python library to infer date format from examples. This is an actively maintained fork of the original dateinfer library by Jeffery Starr. It maintains python 2/3 compatibility and will be released as hi-dateinfer. Pull requests and issues welcome.

Table of Contents

Problem Statement

Imagine that you are given a large collection of documents and, as part of the extraction process, extract date information and store it in a normalized format. If the documents follow a single schema, the ideal approach is to craft a date parsing string for the schema. However, if the documents follow different schemas or if the contents are noisy (e.g. date fields were hand-populated), the development can become onerous.

This library makes a "best guess" on the proper date parsing string (datetime.strptime) based on examples in the file.

Installation

git clone https://github.com/hi-primus/hi-dateinfer.git
cd dateinfer
pip install .

or

pip install hi-dateinfer

Usage

>>> import dateinfer
>>> dateinfer.infer(['Mon Jan 13 09:52:52 MST 2014', 'Tue Jan 21 15:30:00 EST 2014'])
'%a %b %d %H:%M:%S %Z %Y'
>>>

Give dateinfer.infer a list of example date strings. infer returns a datetime.strftime/strptime-compliant date format string for its "best guess" of a format string that will correctly parse the majority of the examples.

Development

Use the following to install the package locally for development purposes:

# create empty virtual environment
virtualenv venv --python=python3.7
source venv/bin/activate
# install dateinfer in editable mode
pip install -e .
# install development dependencies
pip install -r requirements.txt

You can run unit tests as follows:

python -m unittest dateinfer/tests.py

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

hi-dateinfer-0.4.6.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

hi_dateinfer-0.4.6-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file hi-dateinfer-0.4.6.tar.gz.

File metadata

  • Download URL: hi-dateinfer-0.4.6.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for hi-dateinfer-0.4.6.tar.gz
Algorithm Hash digest
SHA256 e2ded27aeb15ee6fcda0a30c2a341acbdaaa5b95c1c4db4c4680a4dbcda35c54
MD5 9a1f410044e9fd5f014f76fae4d182cb
BLAKE2b-256 3e73447b4f9019909e9d94c67a9892b75d52df29850887cefa06d194ce6615ea

See more details on using hashes here.

File details

Details for the file hi_dateinfer-0.4.6-py3-none-any.whl.

File metadata

  • Download URL: hi_dateinfer-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for hi_dateinfer-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 46d27ccc875890315eec9d71d76c2306e84388c4a88106d2f768a921debb49e8
MD5 f93cbbc21a5bdc9579f1b7d4500e1807
BLAKE2b-256 13c7868b174e83cf03ffa8ad4cb70d121278f5691abed1ade1b19485de869e3e

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