6.11. Time¶
Time parsers are based upon Text parser and therefore inherits all parameters
from it and it’s usage. One differences is that normalize parameter is set to
False while in Text parser is set to True by default.
To read docs regarding other parameters than the one described here, please go to Text documentation.
6.11.1. DateTime¶
-
class
easydata.parsers.time.DateTime(*args, language: Optional[str] = None, locales: Optional[List[str]] = None, region: Optional[str] = None, date_formats: Optional[List[str]] = None, date_order: Optional[str] = None, timezone: Optional[str] = None, to_timezone: Optional[str] = None, return_as_timezone_aware: Optional[str] = None, prefer_day_of_month: Optional[str] = None, prefer_dates_from: Optional[str] = None, relative_base: Optional[datetime.datetime] = None, strict_parsing: Optional[bool] = None, require_parts: Optional[List[str]] = None, skip_tokens: Optional[List[str]] = None, date_normalize: Optional[bool] = None, return_time_as_period: Optional[bool] = None, parsers: Optional[List[str]] = None, fuzzy: Optional[bool] = None, prefer_locale_date_order: Optional[bool] = None, default_languages: Optional[List[str]] = None, language_detection_confidence_threshold: Optional[float] = None, **kwargs)[source]¶ Bases:
easydata.parsers.time.BaseDateTime
DateTime parser will try to convert date time from a string to our custom
date time format.
Getting Started¶
Lets import first easydata module.
>>> import easydata as ed
DateTime supports any query object for fetching data.
>>> test_dict = {'datetime': 'Fri, 10 Dec 2018 10:55:50'}
>>> ed.DateTime(ed.jp('datetime')).parse(test_dict)
'12/10/2018 10:55:50'
Any invalid string without datetime will cause DateTime parser to return None.
>>> test_dict = {'datetime': 'n/a'}
>>> ed.DateTime(ed.jp('datetime')).parse(test_dict)
None
Parameters¶
-
datetime_format¶
We can change our date time output in any valid str format that we want through a
datetime_format parameter.
>>> test_date_text = 'Fri, 10 Dec 2018 10:55:50'
>>> ed.DateTime(datetime_format='%d.%m.%Y %H:%M:%S').parse(test_date_text)
'10.12.2018 10:55:50'
Note
Default value of datetime_format parameter can be defined through a config variable ED_DATETIME_FORMAT in a config file or a model.
-
min_year¶
If we set value in a min_year parameter and year of our date time in a string is
bellow our min year limit, then the output will be None.
Lets try first with a valid year.
>>> test_date_text = 'Fri, 10 Dec 2018 10:55:50'
>>> ed.DateTime(min_year='2015').parse(test_date_text)
'12/10/2018 10:55:50'
Now with a year that it’s bellow our min_year limit.
>>> test_date_text = 'Fri, 10 Dec 2010 10:55:50'
>>> ed.DateTime(min_year='2015').parse(test_date_text)
None
-
max_year¶
If we set value in a max_year parameter and year of our date time in a string is
over our max year limit, then the output will be None.
Lets try first with a valid year.
>>> test_date_text = 'Fri, 10 Dec 2018 10:55:50'
>>> ed.DateTime(max_year='2020').parse(test_date_text)
'12/10/2018 10:55:50'
Now with a year that it’s over our max_year limit.
>>> test_date_text = 'Fri, 10 Dec 2022 10:55:50'
>>> ed.DateTime(max_year='2020').parse(test_date_text)
None
-
today¶
-
language¶
-
locales¶
-
region¶
-
date_formats¶
-
date_order¶
-
timezone¶
-
to_timezone¶
-
return_as_timezone_aware¶
-
prefer_day_of_month¶
-
prefer_dates_from¶
-
relative_base¶
-
strict_parsing¶
-
require_parts¶
-
skip_tokens¶
-
date_normalize¶
-
return_time_as_period¶
-
parsers¶
-
fuzzy¶
-
prefer_locale_date_order¶
-
default_languages¶
-
language_detection_confidence_threshold¶
6.11.2. DateTimeSearch¶
-
class
easydata.parsers.time.DateTimeSearch(*args, language: Optional[str] = None, locales: Optional[List[str]] = None, region: Optional[str] = None, date_formats: Optional[List[str]] = None, date_order: Optional[str] = None, timezone: Optional[str] = None, to_timezone: Optional[str] = None, return_as_timezone_aware: Optional[str] = None, prefer_day_of_month: Optional[str] = None, prefer_dates_from: Optional[str] = None, relative_base: Optional[datetime.datetime] = None, strict_parsing: Optional[bool] = None, require_parts: Optional[List[str]] = None, skip_tokens: Optional[List[str]] = None, date_normalize: Optional[bool] = None, return_time_as_period: Optional[bool] = None, parsers: Optional[List[str]] = None, fuzzy: Optional[bool] = None, prefer_locale_date_order: Optional[bool] = None, default_languages: Optional[List[str]] = None, language_detection_confidence_threshold: Optional[float] = None, **kwargs)[source]¶
DateTimeSearch works exactly the same as DateTime parser with a difference
that can extract date time from sentences that have other content besides date time.
Lets try first to extract date from a sentence with a DateTime parser.
As we can see … ordinary
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.DateTime().parse(test_text)
None
As we can see … ordinary DateTime parser cannot handle text if there is some
other text besides date time and in situations like this DateTimeSearch parser
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.DateTimeSearch().parse(test_text)
'12/10/2018 10:55:50'
6.11.3. SPDateTime¶
-
class
easydata.parsers.time.SPDateTime(*args, sp_datetime_format: Optional[str] = None, **kwargs)[source]¶ Bases:
easydata.parsers.time.BaseDateTime
examples coming soon …
Parameters¶
-
sp_datetime_format¶
6.11.4. Date¶
Date parser works exactly the same as DateTime parser but it’s output is only
date and it’s has it’s own date_format parameter to format date output.
Getting Started¶
Lets import first easydata module.
>>> import easydata as ed
Date supports any query object for fetching data.
>>> test_dict = {'datetime': 'Fri, 10 Dec 2018 10:55:50'}
>>> ed.Date(ed.jp('datetime')).parse(test_dict)
'12/10/2018'
Any invalid string without a date will cause Date parser to return None.
>>> test_dict = {'date': 'n/a'}
>>> ed.DateTime(ed.jp('date')).parse(test_dict)
None
Parameters¶
-
date_format¶
We can change our date time output in any valid str format that we want through a
date_format parameter.
>>> test_date_text = 'Fri, 10 Dec 2018 10:55:50'
>>> ed.DateTime(date_format='%d.%m.%Y').parse(test_date_text)
'10.12.2018'
Note
Default value of date_format parameter can be defined through a config variable ED_DATE_FORMAT in a config file or a model.
6.11.5. DateSearch¶
-
class
easydata.parsers.time.DateSearch(*args, date_format: Optional[str] = None, **kwargs)[source]¶ Bases:
easydata.parsers.time.Date
DateSearch works exactly the same as Date parser with a difference
that can extract date from sentences that have other content besides date.
Lets try first to extract date from a sentence with a Date parser.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Date().transform(test_text)
None
As we can see … ordinary
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Date().transform(test_text)
None
As we can see … ordinary
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Date().parse(test_text)
None
As we can see … ordinary Date parser cannot handle text if there is some
other text besides date and in situations like this DateSearch parser
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.DateSearch().transform(test_text)
'12/10/2018'
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.DateSearch().transform(test_text)
'12/10/2018'
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.DateSearch().parse(test_text)
'12/10/2018'
6.11.6. SPDate¶
-
class
easydata.parsers.time.SPDate(*args, date_format: Optional[str] = None, sp_date_format: Optional[str] = None, **kwargs)[source]¶
examples coming soon …
Parameters¶
-
sp_date_format¶
6.11.7. Time¶
Time parser works exactly the same as DateTime parser but it’s output is only
time and it’s has it’s own time_format parameter to format time output.
Getting Started¶
Lets import first easydata module.
>>> import easydata as ed
Time supports any query object for fetching data.
>>> test_dict = {'datetime': 'Fri, 10 Dec 2018 10:55:50'}
>>> ed.Time(ed.jp('datetime')).parse(test_dict)
'10:55:50'
Any invalid string without a date will cause Time parser to return None.
>>> test_dict = {'time': 'n/a'}
>>> ed.Time(ed.jp('time')).parse(test_dict)
None
Parameters¶
-
time_format¶
We can change our date time output in any valid str format that we want through a
time_format parameter.
>>> test_date_text = 'Fri, 10 Dec 2018 10:55:50'
>>> ed.Time(time_format='%H-%M-%S').parse(test_date_text)
'10-55-50'
Note
Default value of time_format parameter can be defined through a config variable ED_TIME_FORMAT in a config file or a model.
6.11.8. TimeSearch¶
-
class
easydata.parsers.time.TimeSearch(*args, time_format: Optional[str] = None, **kwargs)[source]¶ Bases:
easydata.parsers.time.Time
TimeSearch works exactly the same as Time parser with a difference
that can extract time from sentences that have other content besides time.
Lets try first to extract date from a sentence with a Time parser.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Time().transform(test_text)
None
As we can see … ordinary
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Time().transform(test_text)
None
As we can see … ordinary
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Time().parse(test_text)
None
As we can see … ordinary Time parser cannot handle text if there is some
other text besides date and in situations like this TimeSearch parser
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.TimeSearch().transform(test_text)
'10:55:50'
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.TimeSearch().transform(test_text)
'10:55:50'
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.TimeSearch().parse(test_text)
'10:55:50'
6.11.9. Year¶
-
class
easydata.parsers.time.Year(*args, language: Optional[str] = None, locales: Optional[List[str]] = None, region: Optional[str] = None, date_formats: Optional[List[str]] = None, date_order: Optional[str] = None, timezone: Optional[str] = None, to_timezone: Optional[str] = None, return_as_timezone_aware: Optional[str] = None, prefer_day_of_month: Optional[str] = None, prefer_dates_from: Optional[str] = None, relative_base: Optional[datetime.datetime] = None, strict_parsing: Optional[bool] = None, require_parts: Optional[List[str]] = None, skip_tokens: Optional[List[str]] = None, date_normalize: Optional[bool] = None, return_time_as_period: Optional[bool] = None, parsers: Optional[List[str]] = None, fuzzy: Optional[bool] = None, prefer_locale_date_order: Optional[bool] = None, default_languages: Optional[List[str]] = None, language_detection_confidence_threshold: Optional[float] = None, **kwargs)[source]¶
Year parser works exactly the same as DateTime parser but it’s output is only
year.
Getting Started¶
Lets import first easydata module.
>>> import easydata as ed
Year supports any query object for fetching data.
>>> test_dict = {'datetime': 'Fri, 10 Dec 2018 10:55:50'}
>>> ed.Year(ed.jp('datetime')).parse(test_dict)
'2018'
Any invalid string without a date will cause Year parser to return None.
>>> test_dict = {'date': 'n/a'}
>>> ed.Year(ed.jp('date')).parse(test_dict)
None
6.11.10. YearSearch¶
-
class
easydata.parsers.time.YearSearch(*args, language: Optional[str] = None, locales: Optional[List[str]] = None, region: Optional[str] = None, date_formats: Optional[List[str]] = None, date_order: Optional[str] = None, timezone: Optional[str] = None, to_timezone: Optional[str] = None, return_as_timezone_aware: Optional[str] = None, prefer_day_of_month: Optional[str] = None, prefer_dates_from: Optional[str] = None, relative_base: Optional[datetime.datetime] = None, strict_parsing: Optional[bool] = None, require_parts: Optional[List[str]] = None, skip_tokens: Optional[List[str]] = None, date_normalize: Optional[bool] = None, return_time_as_period: Optional[bool] = None, parsers: Optional[List[str]] = None, fuzzy: Optional[bool] = None, prefer_locale_date_order: Optional[bool] = None, default_languages: Optional[List[str]] = None, language_detection_confidence_threshold: Optional[float] = None, **kwargs)[source]¶ Bases:
easydata.parsers.time.Year
YearSearch works exactly the same as Year parser with a difference
that can extract time from sentences that have other content besides date.
Lets try first to extract date from a sentence with a Year parser.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Year().transform(test_text)
None
As we can see … ordinary
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Year().transform(test_text)
None
As we can see … ordinary
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.Year().parse(test_text)
None
As we can see … ordinary Year parser cannot handle text if there is some
other text besides date and in situations like this YearSearch parser
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.YearSearch().transform(test_text)
'2018'
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.YearSearch().transform(test_text)
'2018'
will work.
>>> test_text = 'It has happened on 10 Dec 2018 at 10:55:50'
>>> ed.YearSearch().parse(test_text)
'2018'