Skip to main content

Make working with datetimes in Python simpler and more powerful.

Project description

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

pip install cytimes

Install from github

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 calendar manipulation (shifting & replacing).
  • 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 delta difference against datetime-like object(s).

Pydt Usage

The Pydt class is drop-in replacement for Python’s native datetime.datetime, with additional functionalities.

Construction

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.frommicroseconds(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.fromdayofyear(1970, 1)
>>> 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

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.toseconds()
>>>  0.0
dt.tomicroseconds()
>>>  0
dt.timestamp()
>>>  -3600.0
dt.date()
>>>  1970-01-01
dt.time()
>>>  00:00:00
dt.timetz()
>>>  00:00:00

Manipulation

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
dt.to_first_of("Y").is_first_of("Y")
>>> True
dt.to_last_of("Q").is_last_of("Q")
>>> True
dt.to_start_of("M").is_start_of("M")
>>> True
dt.to_end_of("W").is_end_of("W")
>>> True

# . 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

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
dt.weekday_name("fr")
>>> "lundi"

# . day
dt.is_day(2)
>>> True

Timezone Operation

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

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

from cytimes import Pydt

dt = Pydt(1970, 1, 1)

dt.is_past()
>>> True
dt.is_future()
>>> False

Pddt Usage

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

  • Vectorized parsing, creation, and calendar manipulation (shifting & replacing).
  • Provides the same functionalities as Pydt (see examples above), but for datetime index.
  • Pddt is datetime64[us] focused. It will try to retain nanosecond resolution when possible, but will automatically downcast to microsecond resolution if the value exceeds the bounds of datetime64[ns]. This behavior applies to all Pddt methods.

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.

from cytimes import Pddt

# 1970-01-01: datetime64[ns]
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)

# 9999-01-01: datetime64[us]
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 modifies the date & time when the resulting values are out of the 'ns' range:

from cytimes import Pddt

# 1970-01-01: datetime64[ns]
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)

# add 1000 years: datetime64[us]
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.

cyTimes is built on the following open-source repositories:

  • 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.

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

cytimes-3.0.1.tar.gz (2.7 MB view details)

Uploaded Source

Built Distributions

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

cytimes-3.0.1-cp313-cp313-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.13Windows x86-64

cytimes-3.0.1-cp313-cp313-win32.whl (3.7 MB view details)

Uploaded CPython 3.13Windows x86

cytimes-3.0.1-cp313-cp313-musllinux_1_2_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

cytimes-3.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cytimes-3.0.1-cp313-cp313-macosx_11_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cytimes-3.0.1-cp313-cp313-macosx_10_13_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

cytimes-3.0.1-cp313-cp313-macosx_10_13_universal2.whl (5.2 MB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

cytimes-3.0.1-cp312-cp312-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.12Windows x86-64

cytimes-3.0.1-cp312-cp312-win32.whl (3.7 MB view details)

Uploaded CPython 3.12Windows x86

cytimes-3.0.1-cp312-cp312-musllinux_1_2_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

cytimes-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cytimes-3.0.1-cp312-cp312-macosx_11_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cytimes-3.0.1-cp312-cp312-macosx_10_9_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

cytimes-3.0.1-cp312-cp312-macosx_10_9_universal2.whl (5.2 MB view details)

Uploaded CPython 3.12macOS 10.9+ universal2 (ARM64, x86-64)

cytimes-3.0.1-cp311-cp311-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.11Windows x86-64

cytimes-3.0.1-cp311-cp311-win32.whl (3.7 MB view details)

Uploaded CPython 3.11Windows x86

cytimes-3.0.1-cp311-cp311-musllinux_1_2_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

cytimes-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cytimes-3.0.1-cp311-cp311-macosx_11_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cytimes-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

cytimes-3.0.1-cp311-cp311-macosx_10_9_universal2.whl (5.2 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

cytimes-3.0.1-cp310-cp310-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.10Windows x86-64

cytimes-3.0.1-cp310-cp310-win32.whl (3.7 MB view details)

Uploaded CPython 3.10Windows x86

cytimes-3.0.1-cp310-cp310-musllinux_1_2_x86_64.whl (10.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

cytimes-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cytimes-3.0.1-cp310-cp310-macosx_11_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cytimes-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

cytimes-3.0.1-cp310-cp310-macosx_10_9_universal2.whl (5.2 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file cytimes-3.0.1.tar.gz.

File metadata

  • Download URL: cytimes-3.0.1.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1.tar.gz
Algorithm Hash digest
SHA256 229a094acacae7d41abfcad83d6084e483fd33b72d1318ea0d043868c43c5bb7
MD5 acc4837bd79b30170e401a9de0f2ea41
BLAKE2b-256 b048aa523defb0298645b0c13c6a95952837222325bf4d7e05a8fe9077ca2168

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cytimes-3.0.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9c99fc39162bf40fef60765bb3e69298354ebbff8df8998d085d26072cce8ec8
MD5 546fc97e8da3c07af9b8889206e1a8f2
BLAKE2b-256 953ca5fc1ace9079d8d17449cf555a3f542bc0d11471c550dc7e7dcb2ba9cc05

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp313-cp313-win32.whl.

File metadata

  • Download URL: cytimes-3.0.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 ad2c1d4868f3a6a421e083fbb04daf48bb47da018f29e18fdeb836d2b6337c55
MD5 3a44a4df60f21c6e6d5e400077267c8d
BLAKE2b-256 334578f3c32edf2329b2de7cf30977021067d7bf52e2a2c236dcbd8d39804428

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 da734344ddceb7cd8620695ba81b822df24d149938f4c08ccb981700b06f02fe
MD5 8b06081940a22beb479ad86a8a4b43ad
BLAKE2b-256 0db3b96a3f81154c5999a925fb28ca446a245f74fc835b358c4a61e8b1e49728

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bfc2c36dd45110ac78f2536fba010e11bd4d011d83dff89ffe76233c4456c24e
MD5 de76611fd441168b3275a606687bc0e9
BLAKE2b-256 3394fe575857271e9fbd014cd3ec618599952e0f64f606c54bee34f58ecc8ec9

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6363be243bb534d750bbedbbd4044fbef1638d8ef8c4e67ed69c896314ca6ca
MD5 c95c359bd4f64feb14a81ce512ce6f1b
BLAKE2b-256 4a73ae8ac31f87412df098dcda66fe0a84fda91bf1a3f31ebeb760fe04f733a1

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1e2d7666b61d2154b12e53eb87928109b43df1902945738b817bc0640d8a8faf
MD5 377c313e55fe92ed08139519cc66c6aa
BLAKE2b-256 d501006367be03d4150916f4770d89f01fc9e268bf84d7ab1155a2819a40b5f7

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 cf416c6940cb10d7cafd3256d584cb4626f45f31721d53b8cc9e3338dc48176d
MD5 81048e23cdb8db08512f05a6cb00f3f3
BLAKE2b-256 42c1b1c6b043bd4b567a08ad16cec533d896f967bc29fad75b9c0bfe260c3cde

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cytimes-3.0.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7d40642cbcd00f34143b5229e4b3ad35c6aaf839b0717b8151b76d45065927c6
MD5 640ab7707d95569f51269045add35be1
BLAKE2b-256 903811b7770901e3fc9b84bb81520151fb5c20d1c888a3bdfd2db424334fdb7c

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: cytimes-3.0.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f654170912d4ed9b8c9dc5717bef53b80a02da2828f29804fa6614019eacae72
MD5 4623d131ae9e446db956e89634fb1ab8
BLAKE2b-256 2f33036f70cf40c4aef0d51e2c06cb3953b7faa21103075af132dfd075468ffa

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3ec0af32aae5d38e9b156c6212be4b94a3b9d53e101d129a7f0ec82df4b944a8
MD5 9782606bc359054fd3546e72a75b5ab1
BLAKE2b-256 16e46228ccbaf8404d007173f81f525f65978dee36a9c079859e54a6c4cf3a30

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e632b710edd07659db6e5b93ca42a6cd588e119a78fc7ea8496d9cea83f2fb9a
MD5 3a005ec17f79167a2c5060e9b3015ac5
BLAKE2b-256 9d5a0aa112c0f11f86a505fb770fe3dc88bbceac01c3adbb69fe90811fcee7e7

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4035561b1a03a47a3b9f9698863c8942f20a308fde3c628de5cf8f603064d98
MD5 4a88d468d703165d8245afd846f441f3
BLAKE2b-256 e7b201615071815c1d5834e8ddc9a6a1c74681959c59066f236093f85bd2a9ea

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 553fdc0ece1a1d61a64d9e219367d671c02ea380e8f442dd020fee10b8075753
MD5 d74954cf7fc0066306d8b7874fc29fbf
BLAKE2b-256 261acb4ac9faf75eb65de3d9ca9fac5e24640bd79859d156f4d1750cb998feee

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 85650b65939b1a924851edf6bdf223fbcea710607fd70adc3fd29bdc1367602d
MD5 6f2b009eb7043008cdf8073e6c369f0c
BLAKE2b-256 54ee4bc5b9497e5f9283111b8296a2d58ce759b8b0057a275bfcd892aca0f02a

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cytimes-3.0.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b6498234c633599518315ad0b0979cb63a15af89b502fa86007d12062ecd967b
MD5 d411938a6276b49df5f7d26eb0a0c5cc
BLAKE2b-256 b862ec9ff54aa912f325e8edcc8d4c6bf2cfa0b7717b9bdcbd901c2558a1d4d1

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: cytimes-3.0.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 b3f5fcaecbeb62af97b4c8b8bc317b12c7194c6ed271f1e124407de73359583c
MD5 17c3afd8ea8fea46a9fb74ab840dc151
BLAKE2b-256 0f5739db53f31d1259bf6f60acd42a8c04a79f40708e35e0dafa1ea347f9a83d

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36baa9abce83b537b73c5aed8d87c4c8a80a0b66393822b937d4accb244fdbf6
MD5 79006a7a0a18cc494a9eca1fc097074b
BLAKE2b-256 5197f148af98a99183c539c9664594d3c9dfe4f5b8c48051bb2f5cc2d7cdb056

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 20aaae3fa5ed8f04369e5fa57a73fc7448a7e7ec6c7b12bbac6cfc091ec6aab8
MD5 16fd3e32d2c69056e3f525c251bd7e13
BLAKE2b-256 24a920c71095e8f401411124dc6b801a63c796e331200ace3619c6c577023fa8

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f28ddff8786c438f35d1ff56d455c6ff464c896ced2cedc637b9d5ebb49789d9
MD5 c41ec82e2c57be0d5529518688008e1e
BLAKE2b-256 261ab6e6dcf1af45c8bcbdcc2e01849b4ef835eab57fb37c04121d1cd26b484a

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b7b6b2b1c80a6a239a7f9e9ae0f898e1c78974573240dfbf5c9df87395860380
MD5 1cc895b16890f72b3ce8f49d410c39a5
BLAKE2b-256 853943151ee5720f1cd7fa0af1d6cd15fef57f3a1ac38e59f0efca1710784da2

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 41176650f42bf7cf72503a0fce8e47ee720450270a7eab577e633df8177703de
MD5 fbc2ef094377e20bd2190e9d14c3068c
BLAKE2b-256 3bb09a0defc68cb56c3089c4b971591977cc41d30e1af02cea1d5c490126234f

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cytimes-3.0.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3583e9863d759e9e732b862a8165c1322a1a2c0f0c3ec518a2d34ae60a22b9d3
MD5 61a43833d9c79ea782df4415b114d301
BLAKE2b-256 f9db41cf5befb76666767c14ff5ed6de28270c1e76a1604c3a8a3c682a958920

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: cytimes-3.0.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cytimes-3.0.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 40887656022062e72c4a61ff2037f98c7a73b64a9bc1697b7842c98c0e84dbfd
MD5 bd75f534d93c88790e2397e47882e398
BLAKE2b-256 992096c8dc4e7463449807777ccf8427513870647eb3a438308a482c7af78232

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 28f269562daef08264bae1c6d82b8c81c0524cd1bb292f30827ba2347837772d
MD5 fd572f5275a5116dd0e0104f727fcd45
BLAKE2b-256 3f952934f31fa901a6a67c37e831cc5b71ab163204beb41c89fa1fe471855137

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02ed5efa8be392c0232ceb7387ce50874e7477bd0ff2729d4dd5fedc48552217
MD5 a7579b0d02c446024774580ec2416dc1
BLAKE2b-256 3d1d441612e0ab4f92b77a2d65803dc4837c8fc44a08d803091f604f9d35ae31

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7e196147aa015da64b8cebbef25db3f42b442f9f470bde21509fc9a3cee7084
MD5 adc3452dae09767b723d72fd7a874103
BLAKE2b-256 39764e5922222dd2ff624e773cc0d8c0775ef71e078acf4157d1e01e2d107d72

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 06235ac8ff52ad6c50ed427cf67a6673a0d8d3f106abc4c8858a881b5577af5a
MD5 6a5d6474c8b297a01b8ca3810389f86f
BLAKE2b-256 24fd09dd6634ecb8b69f81683278158fe0ef8507f62248d08992e091225ce1f3

See more details on using hashes here.

File details

Details for the file cytimes-3.0.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for cytimes-3.0.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 de98421d763dc4c57720d28e28e2f53e75eee5db10c957e71d134ba1633cefc5
MD5 246057c2caae8084beeea416cf11db3b
BLAKE2b-256 ad2ad67eacf3e93cd85494ff5fd419d0560a6d5d14745efdf4fbc70a4f4942e3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page