cytimes


Namecytimes JSON
Version 2.0.3 PyPI version JSON
download
home_pagehttps://github.com/AresJef/cyTimes
SummaryMake working with datetimes in Python simpler and more powerful.
upload_time2025-02-06 04:46:16
maintainerNone
docs_urlNone
authorJiefu Chen
requires_python>=3.10
licenseMIT license, Apache License 2.0, BSD 3-Clause
keywords cytimes parser datetime pandas series datetimeindex
VCS
bugtrack_url
requirements babel numpy pandas pyarrow python-dateutil typing-extensions
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Make working with datetimes in Python simpler and more powerful.

Created to be used in a project, this package is published to github for ease of management and installation across different modules.

## Installation

Install from `PyPi`

```bash
pip install cytimes
```

Install from `github`

```bash
pip install git+https://github.com/AresJef/cyTimes.git
```

## Compatibility

Supports Python 3.10 and above.

## Features

`cyTimes` introduces two classes that simplify and enhance working with datetimes:

- `Pydt` (Python datetime.datetime)
- `Pddt` (Pandas DatetimeIndex)

Both provide similar functionalities:

- Direct drop-in replacements (subclasses) for standard Python `datetime` and Pandas `DatetimeIndex`.
- Cython-optimized for high-performance parsing, creation, and manipulation.
- Well-documented methods with type annotations.
- Flexible constructors accepting multiple input formats (strings, datetime objects, timestamps, etc.).
- Rich conversion options (ISO strings, ordinals, timestamps, and more).
- Comprehensive manipulation for precise datetime fields adjustments (years, quarters, months, days, time).
- Direct calendar information insights (e.g., days in month, leap years).
- Extended timezone-related capabilities.
- Supports adding or subtracting deltas, and compute deltas against datetime-like object(s).

## `Pydt` Usage

The `Pydt` class operates similarly to Python’s native `datetime.datetime`, with added methods and improvements.

### Construction

```python
from cytimes import Pydt
import datetime, numpy as np

Pydt(1970, 1, 1, tzinfo="UTC")
>>> 1970-01-01 00:00:00+0000
Pydt.parse("1970 Jan 1 00:00:01 PM")
>>> 1970-01-01 12:00:01
Pydt.now()
>>> 2024-12-06 10:37:25.619593
Pydt.utcnow()
>>> 2024-12-06 09:37:36.743159+0000
Pydt.combine("1970-01-01", "00:00:01")
>>> 1970-01-01 00:00:01
Pydt.fromordinal(1)
>>> 0001-01-01 00:00:00
Pydt.fromseconds(1)
>>> 1970-01-01 00:00:01
Pydt.fromicroseconds(1)
>>> 1970-01-01 00:00:00.000001
Pydt.fromtimestamp(1, datetime.UTC)
>>> 1970-01-01 00:00:01+0000
Pydt.utcfromtimestamp(1)
>>> 1970-01-01 00:00:01+0000
Pydt.fromisoformat("1970-01-01T00:00:01")
>>> 1970-01-01 00:00:01
Pydt.fromisocalendar(1970, 1, 4)
>>> 1970-01-01 00:00:00
Pydt.fromdate(datetime.date(1970, 1, 1))
>>> 1970-01-01 00:00:00
Pydt.fromdatetime(datetime.datetime(1970, 1, 1))
>>> 1970-01-01 00:00:00
Pydt.fromdatetime64(np.datetime64(1, "s"))
>>> 1970-01-01 00:00:01
Pydt.strptime("00:00:01 1970-01-01", "%H:%M:%S %Y-%m-%d")
>>> 1970-01-01 00:00:01
```

### Conversion

```python
from cytimes import Pydt

dt = Pydt(1970, 1, 1, tzinfo="CET")

dt.ctime()
>>>  "Thu Jan  1 00:00:00 1970"
dt.strftime("%Y-%m-%d %H:%M:%S %Z")
>>>  "1970-01-01 00:00:00 CET"
dt.isoformat()
>>>  "1970-01-01T00:00:00+01:00"
dt.timetuple()
>>> (1970, 1, 1, 0, 0, 0, 3, 1, 0)
dt.toordinal()
>>>  719163
dt.seconds()
>>>  0.0
dt.microseconds()
>>>  0
dt.timestamp()
>>>  -3600.0
dt.date()
>>>  1970-01-01
dt.time()
>>>  00:00:00
dt.timetz()
>>>  00:00:00
```

### Manipulation

```python
from cytimes import Pydt

dt = Pydt(1970, 2, 2, 2, 2, 2, 2, "CET")

# . replace
dt.replace(year=2007, microsecond=1, tzinfo="UTC")
>>> 2007-02-02 02:02:02.000001+0000

# . year
dt.to_curr_year(3, 15)
>>> 1970-03-15 02:02:02.000002+0100
dt.to_prev_year("Feb", 30)
>>> 1969-02-28 02:02:02.000002+0100
dt.to_next_year("十二月", 31)
>>> 1971-12-31 02:02:02.000002+0100
dt.to_year(100, "noviembre", 30)
>>> 2070-11-30 02:02:02.000002+0100

# . quarter
dt.to_curr_quarter(3, 15)
>>> 1970-03-15 02:02:02.000002+0100
dt.to_prev_quarter(3, 15)
>>> 1969-12-15 02:02:02.000002+0100
dt.to_next_quarter(3, 15)
>>> 1970-06-15 02:02:02.000002+0100
dt.to_quarter(100, 3, 15)
>>> 1995-03-15 02:02:02.000002+0100

# . month
dt.to_curr_month(15)
>>> 1970-02-15 02:02:02.000002+0100
dt.to_prev_month(15)
>>> 1970-01-15 02:02:02.000002+0100
dt.to_next_month(15)
>>> 1970-03-15 02:02:02.000002+0100
dt.to_month(100, 15)
>>> 1978-06-15 02:02:02.000002+0200

# . weekday
dt.to_monday()
>>> 1970-02-02 02:02:02.000002+0100
dt.to_sunday()
>>> 1970-02-08 02:02:02.000002+0100
dt.to_curr_weekday(4)
>>> 1970-02-06 02:02:02.000002+0100
dt.to_prev_weekday(4)
>>> 1970-01-30 02:02:02.000002+0100
dt.to_next_weekday(4)
>>> 1970-02-13 02:02:02.000002+0100
dt.to_weekday(100, 4)
>>> 1972-01-07 02:02:02.000002+0100

# . day
dt.to_yesterday()
>>> 1970-02-01 02:02:02.000002+0100
dt.to_tomorrow()
>>> 1970-02-03 02:02:02.000002+0100
dt.to_day(100)
>>> 1970-05-13 02:02:02.000002+0100

# . date&time
dt.to_first_of("Y")
>>> 1970-01-01 02:02:02.000002+0100
dt.to_last_of("Q")
>>> 1970-03-31 02:02:02.000002+0100
dt.to_start_of("M")
>>> 1970-02-01 00:00:00+0100
dt.to_end_of("W")
>>> 1970-02-08 23:59:59.999999+0100

# . round / ceil / floor
dt.round("h")
>>> 1970-02-02 02:00:00+0100
dt.ceil("m")
>>> 1970-02-02 02:03:00+0100
dt.floor("s")
>>> 1970-02-02 02:02:02+0100
```

### Calendar Information

```python
from cytimes import Pydt

dt = Pydt(1970, 2, 2, tzinfo="UTC")

# . iso
dt.isocalendar()
>>> {'year': 1970, 'week': 6, 'weekday': 1}
dt.isoyear()
>>> 1970
dt.isoweek()
>>> 6
dt.isoweekday()
>>> 1

# . year
dt.is_leap_year()
>>> False
dt.is_long_year()
>>> True
dt.leap_bt_year(2007)
>>> 9
dt.days_in_year()
>>> 365
dt.days_bf_year()
>>> 719162
dt.days_of_year()
>>> 33
dt.is_year(1970)
>>> True

# . quarter
dt.days_in_quarter()
>>> 90
dt.days_bf_quarter()
>>> 0
dt.days_of_quarter()
>>> 33
dt.is_quarter(1)
>>> True

# . month
dt.days_in_month()
>>> 28
dt.days_bf_month()
>>> 31
dt.days_of_month()
>>> 2
dt.is_month("Feb")
>>> True
dt.month_name("es")
>>> "febrero"

# . weekday
dt.is_weekday("Monday")
>>> True

# . day
dt.is_day(2)
>>> True
dt.day_name("fr")
>>> "lundi"

# . date&time
dt.is_first_of("Y")
>>> False
dt.is_last_of("Q")
>>> False
dt.is_start_of("M")
>>> False
dt.is_end_of("W")
>>> False
```

### Timezone Operation

```python
from cytimes import Pydt

dt = Pydt(1970, 1, 1, tzinfo="UTC")

dt.is_local()
>>> False
dt.is_utc()
>>> True
dt.is_dst()
>>> False
dt.tzname()
>>> "UTC"
dt.utcoffset()
>>> 0:00:00
dt.utcoffset_seconds()
>>> 0
dt.dst()
>>> None
dt.astimezone("CET")
>>> 1970-01-01 01:00:00+0100
dt.tz_localize(None)
>>> 1970-01-01 00:00:00
dt.tz_convert("CET")
>>> 1970-01-01 01:00:00+0100
dt.tz_switch("CET")
>>> 1970-01-01 01:00:00+0100
```

### Arithmetic

```python
from cytimes import Pydt

dt = Pydt(1970, 1, 1, tzinfo="UTC")

dt.add(years=1, weeks=1, microseconds=1)
>>> 1971-01-08 00:00:00.000001+0000
dt.sub(quarters=1, days=1, seconds=1)
>>> 1969-09-29 23:59:59+0000
dt.diff("2007-01-01 01:01:01+01:00", "s")
>>> -1167609662
```

### Comparison

```python
from cytimes import Pydt

dt = Pydt(1970, 1, 1)

dt.is_past()
>>> True
dt.is_future()
>>> False
dt.closest("1970-01-02", "2007-01-01")
>>> 1970-01-02 00:00:00
dt.farthest("1970-01-02", "2007-01-01")
>>> 2007-01-01 00:00:00
```

## `Pddt` Usage

`Pddt` extends similar functionalities to Pandas `DatetimeIndex`, making it behave more like native Python `datetime.datetime`, but for arrays of datetime values. It supports:

- Vectorized parsing, creation, and manipulation.
- Most of the same methods and properties as `Pydt` (see examples above), adapted for datetime-arrays.
- Automatic handling of out-of-range datetimes in nanoseconds by downcasting to microsecond precision `'us'` to avoid overflow.

### Handling Nanosecond Overflow

By default, `DatetimeIndex` uses nanosecond precision `'ns'`, which cannot represent datetimes outside the range 1677-09-21 to 2262-04-11. Pddt automatically downcasts to microseconds `us` when encountering out-of-range datetimes, sacrificing nanosecond precision to allow a broader range support.

```python
from cytimes import Pddt

Pddt(["9999-01-01 00:00:00+00:00", "9999-01-02 00:00:00+00:00"])
>>> Pddt(['9999-01-01 00:00:00+00:00', '9999-01-02 00:00:00+00:00'],
        dtype='datetime64[us, UTC]', freq=None)
```

Downcasting mechanism also automacially applies to all methods that modify the datetimes, resulting values out of the `'ns'` range:

```python
from cytimes import Pddt

pt = Pddt(["1970-01-01 00:00:00+00:00", "1970-01-02 00:00:00+00:00"])
# Pddt(['1970-01-01 00:00:00+00:00', '1970-01-02 00:00:00+00:00'],
#       dtype='datetime64[ns, UTC]', freq=None)
pt.to_year(1000, "Feb", 30)
>>> Pddt(['2970-02-28 00:00:00+00:00', '2970-02-28 00:00:00+00:00'],
        dtype='datetime64[us, UTC]', freq=None)
```

### Acknowledgements

cyTimes is based on several open-source repositories.

- [babel](https://github.com/python-babel/babel)
- [numpy](https://github.com/numpy/numpy)
- [pandas](https://github.com/pandas-dev/pandas)

cyTimes is built on the following open-source repositories:

- [dateutil](https://github.com/dateutil/dateutil)

  Class <'Parser'> and <'Delta'> in this package are the cythonized version of <'dateutil.parser'> and <'dateutil.relativedelta'>. Credit and thanks go to the original authors and contributors of the `dateutil` library.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/AresJef/cyTimes",
    "name": "cytimes",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "cytimes, parser, datetime, pandas, Series, DatetimeIndex",
    "author": "Jiefu Chen",
    "author_email": "keppa1991@163.com",
    "download_url": "https://files.pythonhosted.org/packages/70/e1/12f80401cfdea8c8ea5d048c73925e17a0c936220eea286f91cf396a1d47/cytimes-2.0.3.tar.gz",
    "platform": null,
    "description": "# Make working with datetimes in Python simpler and more powerful.\n\nCreated to be used in a project, this package is published to github for ease of management and installation across different modules.\n\n## Installation\n\nInstall from `PyPi`\n\n```bash\npip install cytimes\n```\n\nInstall from `github`\n\n```bash\npip install git+https://github.com/AresJef/cyTimes.git\n```\n\n## Compatibility\n\nSupports Python 3.10 and above.\n\n## Features\n\n`cyTimes` introduces two classes that simplify and enhance working with datetimes:\n\n- `Pydt` (Python datetime.datetime)\n- `Pddt` (Pandas DatetimeIndex)\n\nBoth provide similar functionalities:\n\n- Direct drop-in replacements (subclasses) for standard Python `datetime` and Pandas `DatetimeIndex`.\n- Cython-optimized for high-performance parsing, creation, and manipulation.\n- Well-documented methods with type annotations.\n- Flexible constructors accepting multiple input formats (strings, datetime objects, timestamps, etc.).\n- Rich conversion options (ISO strings, ordinals, timestamps, and more).\n- Comprehensive manipulation for precise datetime fields adjustments (years, quarters, months, days, time).\n- Direct calendar information insights (e.g., days in month, leap years).\n- Extended timezone-related capabilities.\n- Supports adding or subtracting deltas, and compute deltas against datetime-like object(s).\n\n## `Pydt` Usage\n\nThe `Pydt` class operates similarly to Python\u2019s native `datetime.datetime`, with added methods and improvements.\n\n### Construction\n\n```python\nfrom cytimes import Pydt\nimport datetime, numpy as np\n\nPydt(1970, 1, 1, tzinfo=\"UTC\")\n>>> 1970-01-01 00:00:00+0000\nPydt.parse(\"1970 Jan 1 00:00:01 PM\")\n>>> 1970-01-01 12:00:01\nPydt.now()\n>>> 2024-12-06 10:37:25.619593\nPydt.utcnow()\n>>> 2024-12-06 09:37:36.743159+0000\nPydt.combine(\"1970-01-01\", \"00:00:01\")\n>>> 1970-01-01 00:00:01\nPydt.fromordinal(1)\n>>> 0001-01-01 00:00:00\nPydt.fromseconds(1)\n>>> 1970-01-01 00:00:01\nPydt.fromicroseconds(1)\n>>> 1970-01-01 00:00:00.000001\nPydt.fromtimestamp(1, datetime.UTC)\n>>> 1970-01-01 00:00:01+0000\nPydt.utcfromtimestamp(1)\n>>> 1970-01-01 00:00:01+0000\nPydt.fromisoformat(\"1970-01-01T00:00:01\")\n>>> 1970-01-01 00:00:01\nPydt.fromisocalendar(1970, 1, 4)\n>>> 1970-01-01 00:00:00\nPydt.fromdate(datetime.date(1970, 1, 1))\n>>> 1970-01-01 00:00:00\nPydt.fromdatetime(datetime.datetime(1970, 1, 1))\n>>> 1970-01-01 00:00:00\nPydt.fromdatetime64(np.datetime64(1, \"s\"))\n>>> 1970-01-01 00:00:01\nPydt.strptime(\"00:00:01 1970-01-01\", \"%H:%M:%S %Y-%m-%d\")\n>>> 1970-01-01 00:00:01\n```\n\n### Conversion\n\n```python\nfrom cytimes import Pydt\n\ndt = Pydt(1970, 1, 1, tzinfo=\"CET\")\n\ndt.ctime()\n>>>  \"Thu Jan  1 00:00:00 1970\"\ndt.strftime(\"%Y-%m-%d %H:%M:%S %Z\")\n>>>  \"1970-01-01 00:00:00 CET\"\ndt.isoformat()\n>>>  \"1970-01-01T00:00:00+01:00\"\ndt.timetuple()\n>>> (1970, 1, 1, 0, 0, 0, 3, 1, 0)\ndt.toordinal()\n>>>  719163\ndt.seconds()\n>>>  0.0\ndt.microseconds()\n>>>  0\ndt.timestamp()\n>>>  -3600.0\ndt.date()\n>>>  1970-01-01\ndt.time()\n>>>  00:00:00\ndt.timetz()\n>>>  00:00:00\n```\n\n### Manipulation\n\n```python\nfrom cytimes import Pydt\n\ndt = Pydt(1970, 2, 2, 2, 2, 2, 2, \"CET\")\n\n# . replace\ndt.replace(year=2007, microsecond=1, tzinfo=\"UTC\")\n>>> 2007-02-02 02:02:02.000001+0000\n\n# . year\ndt.to_curr_year(3, 15)\n>>> 1970-03-15 02:02:02.000002+0100\ndt.to_prev_year(\"Feb\", 30)\n>>> 1969-02-28 02:02:02.000002+0100\ndt.to_next_year(\"\u5341\u4e8c\u6708\", 31)\n>>> 1971-12-31 02:02:02.000002+0100\ndt.to_year(100, \"noviembre\", 30)\n>>> 2070-11-30 02:02:02.000002+0100\n\n# . quarter\ndt.to_curr_quarter(3, 15)\n>>> 1970-03-15 02:02:02.000002+0100\ndt.to_prev_quarter(3, 15)\n>>> 1969-12-15 02:02:02.000002+0100\ndt.to_next_quarter(3, 15)\n>>> 1970-06-15 02:02:02.000002+0100\ndt.to_quarter(100, 3, 15)\n>>> 1995-03-15 02:02:02.000002+0100\n\n# . month\ndt.to_curr_month(15)\n>>> 1970-02-15 02:02:02.000002+0100\ndt.to_prev_month(15)\n>>> 1970-01-15 02:02:02.000002+0100\ndt.to_next_month(15)\n>>> 1970-03-15 02:02:02.000002+0100\ndt.to_month(100, 15)\n>>> 1978-06-15 02:02:02.000002+0200\n\n# . weekday\ndt.to_monday()\n>>> 1970-02-02 02:02:02.000002+0100\ndt.to_sunday()\n>>> 1970-02-08 02:02:02.000002+0100\ndt.to_curr_weekday(4)\n>>> 1970-02-06 02:02:02.000002+0100\ndt.to_prev_weekday(4)\n>>> 1970-01-30 02:02:02.000002+0100\ndt.to_next_weekday(4)\n>>> 1970-02-13 02:02:02.000002+0100\ndt.to_weekday(100, 4)\n>>> 1972-01-07 02:02:02.000002+0100\n\n# . day\ndt.to_yesterday()\n>>> 1970-02-01 02:02:02.000002+0100\ndt.to_tomorrow()\n>>> 1970-02-03 02:02:02.000002+0100\ndt.to_day(100)\n>>> 1970-05-13 02:02:02.000002+0100\n\n# . date&time\ndt.to_first_of(\"Y\")\n>>> 1970-01-01 02:02:02.000002+0100\ndt.to_last_of(\"Q\")\n>>> 1970-03-31 02:02:02.000002+0100\ndt.to_start_of(\"M\")\n>>> 1970-02-01 00:00:00+0100\ndt.to_end_of(\"W\")\n>>> 1970-02-08 23:59:59.999999+0100\n\n# . round / ceil / floor\ndt.round(\"h\")\n>>> 1970-02-02 02:00:00+0100\ndt.ceil(\"m\")\n>>> 1970-02-02 02:03:00+0100\ndt.floor(\"s\")\n>>> 1970-02-02 02:02:02+0100\n```\n\n### Calendar Information\n\n```python\nfrom cytimes import Pydt\n\ndt = Pydt(1970, 2, 2, tzinfo=\"UTC\")\n\n# . iso\ndt.isocalendar()\n>>> {'year': 1970, 'week': 6, 'weekday': 1}\ndt.isoyear()\n>>> 1970\ndt.isoweek()\n>>> 6\ndt.isoweekday()\n>>> 1\n\n# . year\ndt.is_leap_year()\n>>> False\ndt.is_long_year()\n>>> True\ndt.leap_bt_year(2007)\n>>> 9\ndt.days_in_year()\n>>> 365\ndt.days_bf_year()\n>>> 719162\ndt.days_of_year()\n>>> 33\ndt.is_year(1970)\n>>> True\n\n# . quarter\ndt.days_in_quarter()\n>>> 90\ndt.days_bf_quarter()\n>>> 0\ndt.days_of_quarter()\n>>> 33\ndt.is_quarter(1)\n>>> True\n\n# . month\ndt.days_in_month()\n>>> 28\ndt.days_bf_month()\n>>> 31\ndt.days_of_month()\n>>> 2\ndt.is_month(\"Feb\")\n>>> True\ndt.month_name(\"es\")\n>>> \"febrero\"\n\n# . weekday\ndt.is_weekday(\"Monday\")\n>>> True\n\n# . day\ndt.is_day(2)\n>>> True\ndt.day_name(\"fr\")\n>>> \"lundi\"\n\n# . date&time\ndt.is_first_of(\"Y\")\n>>> False\ndt.is_last_of(\"Q\")\n>>> False\ndt.is_start_of(\"M\")\n>>> False\ndt.is_end_of(\"W\")\n>>> False\n```\n\n### Timezone Operation\n\n```python\nfrom cytimes import Pydt\n\ndt = Pydt(1970, 1, 1, tzinfo=\"UTC\")\n\ndt.is_local()\n>>> False\ndt.is_utc()\n>>> True\ndt.is_dst()\n>>> False\ndt.tzname()\n>>> \"UTC\"\ndt.utcoffset()\n>>> 0:00:00\ndt.utcoffset_seconds()\n>>> 0\ndt.dst()\n>>> None\ndt.astimezone(\"CET\")\n>>> 1970-01-01 01:00:00+0100\ndt.tz_localize(None)\n>>> 1970-01-01 00:00:00\ndt.tz_convert(\"CET\")\n>>> 1970-01-01 01:00:00+0100\ndt.tz_switch(\"CET\")\n>>> 1970-01-01 01:00:00+0100\n```\n\n### Arithmetic\n\n```python\nfrom cytimes import Pydt\n\ndt = Pydt(1970, 1, 1, tzinfo=\"UTC\")\n\ndt.add(years=1, weeks=1, microseconds=1)\n>>> 1971-01-08 00:00:00.000001+0000\ndt.sub(quarters=1, days=1, seconds=1)\n>>> 1969-09-29 23:59:59+0000\ndt.diff(\"2007-01-01 01:01:01+01:00\", \"s\")\n>>> -1167609662\n```\n\n### Comparison\n\n```python\nfrom cytimes import Pydt\n\ndt = Pydt(1970, 1, 1)\n\ndt.is_past()\n>>> True\ndt.is_future()\n>>> False\ndt.closest(\"1970-01-02\", \"2007-01-01\")\n>>> 1970-01-02 00:00:00\ndt.farthest(\"1970-01-02\", \"2007-01-01\")\n>>> 2007-01-01 00:00:00\n```\n\n## `Pddt` Usage\n\n`Pddt` extends similar functionalities to Pandas `DatetimeIndex`, making it behave more like native Python `datetime.datetime`, but for arrays of datetime values. It supports:\n\n- Vectorized parsing, creation, and manipulation.\n- Most of the same methods and properties as `Pydt` (see examples above), adapted for datetime-arrays.\n- Automatic handling of out-of-range datetimes in nanoseconds by downcasting to microsecond precision `'us'` to avoid overflow.\n\n### Handling Nanosecond Overflow\n\nBy default, `DatetimeIndex` uses nanosecond precision `'ns'`, which cannot represent datetimes outside the range 1677-09-21 to 2262-04-11. Pddt automatically downcasts to microseconds `us` when encountering out-of-range datetimes, sacrificing nanosecond precision to allow a broader range support.\n\n```python\nfrom cytimes import Pddt\n\nPddt([\"9999-01-01 00:00:00+00:00\", \"9999-01-02 00:00:00+00:00\"])\n>>> Pddt(['9999-01-01 00:00:00+00:00', '9999-01-02 00:00:00+00:00'],\n        dtype='datetime64[us, UTC]', freq=None)\n```\n\nDowncasting mechanism also automacially applies to all methods that modify the datetimes, resulting values out of the `'ns'` range:\n\n```python\nfrom cytimes import Pddt\n\npt = Pddt([\"1970-01-01 00:00:00+00:00\", \"1970-01-02 00:00:00+00:00\"])\n# Pddt(['1970-01-01 00:00:00+00:00', '1970-01-02 00:00:00+00:00'],\n#       dtype='datetime64[ns, UTC]', freq=None)\npt.to_year(1000, \"Feb\", 30)\n>>> Pddt(['2970-02-28 00:00:00+00:00', '2970-02-28 00:00:00+00:00'],\n        dtype='datetime64[us, UTC]', freq=None)\n```\n\n### Acknowledgements\n\ncyTimes is based on several open-source repositories.\n\n- [babel](https://github.com/python-babel/babel)\n- [numpy](https://github.com/numpy/numpy)\n- [pandas](https://github.com/pandas-dev/pandas)\n\ncyTimes is built on the following open-source repositories:\n\n- [dateutil](https://github.com/dateutil/dateutil)\n\n  Class <'Parser'> and <'Delta'> in this package are the cythonized version of <'dateutil.parser'> and <'dateutil.relativedelta'>. Credit and thanks go to the original authors and contributors of the `dateutil` library.\n",
    "bugtrack_url": null,
    "license": "MIT license, Apache License 2.0, BSD 3-Clause",
    "summary": "Make working with datetimes in Python simpler and more powerful.",
    "version": "2.0.3",
    "project_urls": {
        "Homepage": "https://github.com/AresJef/cyTimes"
    },
    "split_keywords": [
        "cytimes",
        " parser",
        " datetime",
        " pandas",
        " series",
        " datetimeindex"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3e9396c4e8140085ef8d5e5f081712d22149fc55a47caa8b3c056226a7cb385d",
                "md5": "5e512df603dbb0e1d840dd3cc5083f32",
                "sha256": "05b0d7e90531dae04718bae7df8f783772635fa400907a8a440db8f919c8c8e4"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "5e512df603dbb0e1d840dd3cc5083f32",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 4369136,
            "upload_time": "2025-02-06T04:45:10",
            "upload_time_iso_8601": "2025-02-06T04:45:10.761185Z",
            "url": "https://files.pythonhosted.org/packages/3e/93/96c4e8140085ef8d5e5f081712d22149fc55a47caa8b3c056226a7cb385d/cytimes-2.0.3-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7708cbeb4e66aca68b67d22f59503d379165fb76084edfef4228162c010a263d",
                "md5": "1057f3a193f2b97094db7460f8e72e5c",
                "sha256": "1df28621f1be38d2f05165e9ee839fbff307e2fe215de881e76f21a311f6955e"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1057f3a193f2b97094db7460f8e72e5c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 3326913,
            "upload_time": "2025-02-06T04:45:12",
            "upload_time_iso_8601": "2025-02-06T04:45:12.623166Z",
            "url": "https://files.pythonhosted.org/packages/77/08/cbeb4e66aca68b67d22f59503d379165fb76084edfef4228162c010a263d/cytimes-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4778a087ea3387f7fc2acf575e4b925df3d31456f725afc73b8b816f744d3231",
                "md5": "5c08b1bc4f78f3846e75c40486420021",
                "sha256": "8e0f640df00131fdb403585a4e84a1e910b63bcd74a51e8cd32545ae32f1cfb7"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5c08b1bc4f78f3846e75c40486420021",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 3236608,
            "upload_time": "2025-02-06T04:45:14",
            "upload_time_iso_8601": "2025-02-06T04:45:14.948229Z",
            "url": "https://files.pythonhosted.org/packages/47/78/a087ea3387f7fc2acf575e4b925df3d31456f725afc73b8b816f744d3231/cytimes-2.0.3-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5c0759a839fc381eb102e171e018e1d29ed4aae6f4505bb2842618afe5de95cd",
                "md5": "df4321bb7a0736d08aa2d1e68f12781e",
                "sha256": "fe3a8c0deaf06a66f9a481121571cd2fb3e4fa8ebf38419b323b1554988309eb"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "df4321bb7a0736d08aa2d1e68f12781e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 8957963,
            "upload_time": "2025-02-06T04:45:17",
            "upload_time_iso_8601": "2025-02-06T04:45:17.735802Z",
            "url": "https://files.pythonhosted.org/packages/5c/07/59a839fc381eb102e171e018e1d29ed4aae6f4505bb2842618afe5de95cd/cytimes-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "76482fd1a689eb0e1d674dd236af465c2a2ca0e27934ba2fd3cced8f6716fd43",
                "md5": "197a0c3773d0a4667f655ba9b8d81e1d",
                "sha256": "54d65fa45838bd1e4969bf623ea9954ab07f9b7e952b67a448dc5de1da0918ae"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "197a0c3773d0a4667f655ba9b8d81e1d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 8925221,
            "upload_time": "2025-02-06T04:45:21",
            "upload_time_iso_8601": "2025-02-06T04:45:21.037181Z",
            "url": "https://files.pythonhosted.org/packages/76/48/2fd1a689eb0e1d674dd236af465c2a2ca0e27934ba2fd3cced8f6716fd43/cytimes-2.0.3-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8bc869e73391648189eaa830199f9e3122a9f30277b44126da8ff23941745f38",
                "md5": "0b4095e15f19ab081ade4af9d9d28f66",
                "sha256": "46ffce221b16fa125a691a8f654d9e4e23d5532ca2491fadb5a154f84099519d"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "0b4095e15f19ab081ade4af9d9d28f66",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 3019196,
            "upload_time": "2025-02-06T04:45:24",
            "upload_time_iso_8601": "2025-02-06T04:45:24.226824Z",
            "url": "https://files.pythonhosted.org/packages/8b/c8/69e73391648189eaa830199f9e3122a9f30277b44126da8ff23941745f38/cytimes-2.0.3-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e94b96a541fe5f4108d805b504d35530ac9bf849794053544186021895684b76",
                "md5": "7ebcd350d75b41ff2803e9b00867d7b6",
                "sha256": "eab867ef43fa8e95d34e4330b553329772bbc40839abf1d2d975b4ea3fcf6215"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7ebcd350d75b41ff2803e9b00867d7b6",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 3109218,
            "upload_time": "2025-02-06T04:45:27",
            "upload_time_iso_8601": "2025-02-06T04:45:27.590525Z",
            "url": "https://files.pythonhosted.org/packages/e9/4b/96a541fe5f4108d805b504d35530ac9bf849794053544186021895684b76/cytimes-2.0.3-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6ddfbbcd8538226ff3f816f2d5265c5a3ce09865046d8a69c50aa091f3a3108c",
                "md5": "7c11a2c34ee98dd1a4f7359079ea8ec1",
                "sha256": "4955e1b202cf914de5c747ce76392570c9e3670eb503306b6a5bac92052b528f"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "7c11a2c34ee98dd1a4f7359079ea8ec1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 4381248,
            "upload_time": "2025-02-06T04:45:30",
            "upload_time_iso_8601": "2025-02-06T04:45:30.148240Z",
            "url": "https://files.pythonhosted.org/packages/6d/df/bbcd8538226ff3f816f2d5265c5a3ce09865046d8a69c50aa091f3a3108c/cytimes-2.0.3-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "67286140b141e57fc73eddbd046bdb4790aa9f8d04cd31c014b7dcafd8ea8607",
                "md5": "5afd69568baab5c56fa6df5b82b3efa3",
                "sha256": "c3ee829d479b8f301703636d9b17f6e512018983772f49ae56f89b29241a09b0"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5afd69568baab5c56fa6df5b82b3efa3",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 3335147,
            "upload_time": "2025-02-06T04:45:33",
            "upload_time_iso_8601": "2025-02-06T04:45:33.075817Z",
            "url": "https://files.pythonhosted.org/packages/67/28/6140b141e57fc73eddbd046bdb4790aa9f8d04cd31c014b7dcafd8ea8607/cytimes-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f3812d109a0626138c88b690d54092bcfa4b0078b35333248c8ab20fe8b0eec2",
                "md5": "3a52fd0d51227d567fc0850b45e95113",
                "sha256": "e06142e23032ce8bee78d8d5505122436d69d2b4c6742751d4e9b81a186e29df"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "3a52fd0d51227d567fc0850b45e95113",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 3239904,
            "upload_time": "2025-02-06T04:45:36",
            "upload_time_iso_8601": "2025-02-06T04:45:36.537166Z",
            "url": "https://files.pythonhosted.org/packages/f3/81/2d109a0626138c88b690d54092bcfa4b0078b35333248c8ab20fe8b0eec2/cytimes-2.0.3-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ea9fce52916c692a4634c3b6562b703863718f88bdb6fd66e5629c10e6e99e39",
                "md5": "641aebf1ab352ab1793f675547071ec5",
                "sha256": "4f8bb5dbb498b380eaf35871d9383ed296539b9ac95ed9c29ce2f15edd7eeca8"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "641aebf1ab352ab1793f675547071ec5",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 9414526,
            "upload_time": "2025-02-06T04:45:38",
            "upload_time_iso_8601": "2025-02-06T04:45:38.470138Z",
            "url": "https://files.pythonhosted.org/packages/ea/9f/ce52916c692a4634c3b6562b703863718f88bdb6fd66e5629c10e6e99e39/cytimes-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "89ff8c8b6c78dc32b2d185fd2083a21fbc8d02c7350f147cd22cb67627fc1e89",
                "md5": "7d59c59da6858463f42b8190531f4110",
                "sha256": "65c621584fafe31f0640c44c718e9b4c6e3ca362014752df7e5383b9d74d009b"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7d59c59da6858463f42b8190531f4110",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 9440084,
            "upload_time": "2025-02-06T04:45:41",
            "upload_time_iso_8601": "2025-02-06T04:45:41.141694Z",
            "url": "https://files.pythonhosted.org/packages/89/ff/8c8b6c78dc32b2d185fd2083a21fbc8d02c7350f147cd22cb67627fc1e89/cytimes-2.0.3-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a9452bd5a987d66fedbd3227c32c196c178f2918b33991684d83cfce663b9732",
                "md5": "826fb3cf85ebc8f9b55e0d13c70d0621",
                "sha256": "e59b3a4162939b4ae1014ec2f4e02af410bb5cbd76a03021fc23088c6cc08648"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "826fb3cf85ebc8f9b55e0d13c70d0621",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 3014988,
            "upload_time": "2025-02-06T04:45:43",
            "upload_time_iso_8601": "2025-02-06T04:45:43.357069Z",
            "url": "https://files.pythonhosted.org/packages/a9/45/2bd5a987d66fedbd3227c32c196c178f2918b33991684d83cfce663b9732/cytimes-2.0.3-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "48788c570076a330fd9191fc4aabac1376c3db21ea9f0c472b6dacbe5f831ab5",
                "md5": "eaf98125c089a3c637bfca9e88da2b6e",
                "sha256": "852528de09d96ee7309104921ff8699b2f75eb5c13f7ff613ecef015bb10aeaf"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "eaf98125c089a3c637bfca9e88da2b6e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 3118504,
            "upload_time": "2025-02-06T04:45:45",
            "upload_time_iso_8601": "2025-02-06T04:45:45.787554Z",
            "url": "https://files.pythonhosted.org/packages/48/78/8c570076a330fd9191fc4aabac1376c3db21ea9f0c472b6dacbe5f831ab5/cytimes-2.0.3-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f3f96d5f3c740317de3d03144fb96482e791b9964d2265d303a0edb77de537ca",
                "md5": "a3ff837a1b35021018ec0b436877ba88",
                "sha256": "bdda50067e1e795718571328d1f7481a2ef4dd7d1cdebe0ce47e208293d9be6e"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp312-cp312-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "a3ff837a1b35021018ec0b436877ba88",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 4389959,
            "upload_time": "2025-02-06T04:45:47",
            "upload_time_iso_8601": "2025-02-06T04:45:47.317333Z",
            "url": "https://files.pythonhosted.org/packages/f3/f9/6d5f3c740317de3d03144fb96482e791b9964d2265d303a0edb77de537ca/cytimes-2.0.3-cp312-cp312-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1a457fd0daec599febc478a162af5cd5edf1e380fd0c709bbe574ed419e9d465",
                "md5": "40cf7765f27af0584a540b4383b10f5b",
                "sha256": "8ea7b51631340101fbfb9818614057b278d2b6b14a7c812ace8a1e9f42321b83"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "40cf7765f27af0584a540b4383b10f5b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 3341667,
            "upload_time": "2025-02-06T04:45:48",
            "upload_time_iso_8601": "2025-02-06T04:45:48.946956Z",
            "url": "https://files.pythonhosted.org/packages/1a/45/7fd0daec599febc478a162af5cd5edf1e380fd0c709bbe574ed419e9d465/cytimes-2.0.3-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c99f261b0202bf339ba933198dbf66766b104007d60363803ece71bb29d347e9",
                "md5": "c788550fd8dfb1b7fd35520a8c948e7c",
                "sha256": "5ac1940b97a16dafac9ec2ba78cbe563928a9218b0f1c9af1484300ab613198f"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c788550fd8dfb1b7fd35520a8c948e7c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 3244116,
            "upload_time": "2025-02-06T04:45:51",
            "upload_time_iso_8601": "2025-02-06T04:45:51.459448Z",
            "url": "https://files.pythonhosted.org/packages/c9/9f/261b0202bf339ba933198dbf66766b104007d60363803ece71bb29d347e9/cytimes-2.0.3-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5effc78aae559c0ddf3e456ab0ee6a42ce7f2e01d90734de36cd863ce4a177d6",
                "md5": "edb77148d66d17e7b4ba314da9c988e9",
                "sha256": "b3d77cea68b0518a1f01c929cb0563a6c3dcb2dc7aa93204fc67b8110c9d2aed"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "edb77148d66d17e7b4ba314da9c988e9",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 9140334,
            "upload_time": "2025-02-06T04:45:53",
            "upload_time_iso_8601": "2025-02-06T04:45:53.237172Z",
            "url": "https://files.pythonhosted.org/packages/5e/ff/c78aae559c0ddf3e456ab0ee6a42ce7f2e01d90734de36cd863ce4a177d6/cytimes-2.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "73f29b7297d535f915bd71281daf40bf2ed7876d9476dd30b403710ab54b21c7",
                "md5": "1619df6e52456535592cd3baf25213c2",
                "sha256": "f5f9d3010e15af6599f1fde62abccdbf7b829361b5781e10725b4b183155aee9"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1619df6e52456535592cd3baf25213c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 9221883,
            "upload_time": "2025-02-06T04:45:56",
            "upload_time_iso_8601": "2025-02-06T04:45:56.070567Z",
            "url": "https://files.pythonhosted.org/packages/73/f2/9b7297d535f915bd71281daf40bf2ed7876d9476dd30b403710ab54b21c7/cytimes-2.0.3-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6128b249e9fb388ac1d1caf41703e912798fef82aefccda828414f0ec458f36f",
                "md5": "82db1bd191d52976d380bc53d22947c7",
                "sha256": "693af547fe01ac9db86b0c7cff230070655b54eb6c20915feead727d7c568628"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "82db1bd191d52976d380bc53d22947c7",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 3010027,
            "upload_time": "2025-02-06T04:45:58",
            "upload_time_iso_8601": "2025-02-06T04:45:58.987184Z",
            "url": "https://files.pythonhosted.org/packages/61/28/b249e9fb388ac1d1caf41703e912798fef82aefccda828414f0ec458f36f/cytimes-2.0.3-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9832407c35fa98857f995cb8176b756cc801807dc25b6f76473ceeaaeef8c84c",
                "md5": "a6e9355eb72d837035fdac71e9c75296",
                "sha256": "2ec3d029c6c3ce00f6661145132afdd04f4fd73f8842ddc0d0c46ab651b7f5f2"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a6e9355eb72d837035fdac71e9c75296",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 3111979,
            "upload_time": "2025-02-06T04:46:00",
            "upload_time_iso_8601": "2025-02-06T04:46:00.641432Z",
            "url": "https://files.pythonhosted.org/packages/98/32/407c35fa98857f995cb8176b756cc801807dc25b6f76473ceeaaeef8c84c/cytimes-2.0.3-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "876baafb51b6609b3c6d3b7291f44b05162d034e76fbd0398f5ff318f9fe9446",
                "md5": "57271183c75a0c37796f73aceeea1d5b",
                "sha256": "84565e8181b4b4d564cdc96710b21dd6a7e08584b8f4a735c30df41b7c70c1b3"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp313-cp313-macosx_10_13_universal2.whl",
            "has_sig": false,
            "md5_digest": "57271183c75a0c37796f73aceeea1d5b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 4375451,
            "upload_time": "2025-02-06T04:46:02",
            "upload_time_iso_8601": "2025-02-06T04:46:02.195444Z",
            "url": "https://files.pythonhosted.org/packages/87/6b/aafb51b6609b3c6d3b7291f44b05162d034e76fbd0398f5ff318f9fe9446/cytimes-2.0.3-cp313-cp313-macosx_10_13_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "00cc80e3ff9b671ea204416b9f8dd631b110f98a5bbb5a6241276cbd557fbbda",
                "md5": "a71f552ed78e3c0eb1efdbbf342e570d",
                "sha256": "0e83b8e00e96136a6ea37119b6705ddd513807ee3a8877d078503c04b0523a6a"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a71f552ed78e3c0eb1efdbbf342e570d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 3333774,
            "upload_time": "2025-02-06T04:46:04",
            "upload_time_iso_8601": "2025-02-06T04:46:04.148150Z",
            "url": "https://files.pythonhosted.org/packages/00/cc/80e3ff9b671ea204416b9f8dd631b110f98a5bbb5a6241276cbd557fbbda/cytimes-2.0.3-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "595589fc30686dff6ca6d888a84acb082fdbb32199f15fc10a24d1a4e8849da2",
                "md5": "4b93d5837d62027360a1197a79884591",
                "sha256": "762d3f623549b4be8c8980845e58a483e0d43e5cc2c1303699550ea1c88bb1a2"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4b93d5837d62027360a1197a79884591",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 3237107,
            "upload_time": "2025-02-06T04:46:05",
            "upload_time_iso_8601": "2025-02-06T04:46:05.941692Z",
            "url": "https://files.pythonhosted.org/packages/59/55/89fc30686dff6ca6d888a84acb082fdbb32199f15fc10a24d1a4e8849da2/cytimes-2.0.3-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f10ad45e4f5e88885c4bd3b22287bbf2076714e90041bb841c71fb675e41dfa6",
                "md5": "a3ed4d68eda67684130ca527c30a7f4d",
                "sha256": "5147505de1872559e0d177988a695d0c274dfaaaefaed3fcbed66bb6eff2d56e"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a3ed4d68eda67684130ca527c30a7f4d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 9135331,
            "upload_time": "2025-02-06T04:46:07",
            "upload_time_iso_8601": "2025-02-06T04:46:07.762059Z",
            "url": "https://files.pythonhosted.org/packages/f1/0a/d45e4f5e88885c4bd3b22287bbf2076714e90041bb841c71fb675e41dfa6/cytimes-2.0.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f14fa81a8834c7f313da394d0d7c563239418478c96718f17b165ee2f73d6ce8",
                "md5": "451281c46db81e343b6f5a7f0b847e28",
                "sha256": "30eb061c27ee174f4cf5fc9707522409bf3144a9b3b70cfbda545bdce4f66766"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "451281c46db81e343b6f5a7f0b847e28",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 9212723,
            "upload_time": "2025-02-06T04:46:10",
            "upload_time_iso_8601": "2025-02-06T04:46:10.518707Z",
            "url": "https://files.pythonhosted.org/packages/f1/4f/a81a8834c7f313da394d0d7c563239418478c96718f17b165ee2f73d6ce8/cytimes-2.0.3-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ee54ad6acf6917059481eebc0952f3bec5f5bc0f4ef365a719776092d4197356",
                "md5": "db3782cba7cd9431d84e136e8848fc7f",
                "sha256": "a8cb2ef02061ab0e1502a5c07d33fe3b35d00b23929c066d2a75d40815dc5fc6"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "db3782cba7cd9431d84e136e8848fc7f",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 3007365,
            "upload_time": "2025-02-06T04:46:12",
            "upload_time_iso_8601": "2025-02-06T04:46:12.881520Z",
            "url": "https://files.pythonhosted.org/packages/ee/54/ad6acf6917059481eebc0952f3bec5f5bc0f4ef365a719776092d4197356/cytimes-2.0.3-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a3ad11562203a03188185cd0f61068da5ca62e29d069f285fc45d2925505080a",
                "md5": "522a9fd8b6f46386f86173ac80ded2c9",
                "sha256": "30f5a6979ecd75134e4ae1ff83c171eec46809883aa3e431a9ab720e75c8c4af"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "522a9fd8b6f46386f86173ac80ded2c9",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 3108708,
            "upload_time": "2025-02-06T04:46:15",
            "upload_time_iso_8601": "2025-02-06T04:46:15.148568Z",
            "url": "https://files.pythonhosted.org/packages/a3/ad/11562203a03188185cd0f61068da5ca62e29d069f285fc45d2925505080a/cytimes-2.0.3-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "70e112f80401cfdea8c8ea5d048c73925e17a0c936220eea286f91cf396a1d47",
                "md5": "8b02ffa28554fd49b0bf8e1d8806178e",
                "sha256": "a025578f2824c91f467599b83effea7a3f76c34038ee1111948b9da2ac934b6b"
            },
            "downloads": -1,
            "filename": "cytimes-2.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "8b02ffa28554fd49b0bf8e1d8806178e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 2096203,
            "upload_time": "2025-02-06T04:46:16",
            "upload_time_iso_8601": "2025-02-06T04:46:16.552714Z",
            "url": "https://files.pythonhosted.org/packages/70/e1/12f80401cfdea8c8ea5d048c73925e17a0c936220eea286f91cf396a1d47/cytimes-2.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-06 04:46:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "AresJef",
    "github_project": "cyTimes",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "babel",
            "specs": [
                [
                    ">=",
                    "2.12.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.25.2"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "2.1.0"
                ]
            ]
        },
        {
            "name": "pyarrow",
            "specs": [
                [
                    ">=",
                    "13.0.0"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    ">=",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    ">=",
                    "4.9.0"
                ]
            ]
        }
    ],
    "lcname": "cytimes"
}
        
Elapsed time: 0.46368s