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(Pythondatetime.datetime)Pddt(PandasDatetimeIndex)
Both provide similar functionalities:
- Direct drop-in replacements (subclasses) for standard Python
datetimeand PandasDatetimeIndex. - 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. Pddtisdatetime64[us]focused. It will try to retain nanosecond resolution when possible, but will automatically downcast to microsecond resolution if the value exceeds the bounds ofdatetime64[ns]. This behavior applies to allPddtmethods.
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:
-
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 thedateutillibrary.
Metadata
Release files for cytimes 3.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cytimes-3.1.0.tar.gz | 2.8 MB | Without provenance | Details for cytimes-3.1.0.tar.gz |
Built distributions (wheels)
Total release size: 146.2 MB
Release files / cytimes-3.1.0.tar.gz
| Download URL | cytimes-3.1.0.tar.gz |
|---|---|
| Size | 2.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f6b17e019293202fb2dbfe4eab74b7db45e35434c207b157973b7ff541d64ca9
|
|
BLAKE2b-256 checksum How to use checksums |
b40d346b627ee434656975c9e1109a56f1c3722c218cb4dbf17675d3cb195276
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp313-cp313-win_amd64.whl
| Download URL | cytimes-3.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
440524bfa82e08695555e8592c2060c4433b6357cd30f367cda769151d2c2d95
|
|
BLAKE2b-256 checksum How to use checksums |
9fab2fb8f1722cb25fc949656cdd3bc11b05e8a453c44f68984b0ff6ea13b086
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp313-cp313-win32.whl
| Download URL | cytimes-3.1.0-cp313-cp313-win32.whl |
|---|---|
| Size | 3.8 MB |
| Tags | CPython 3.13 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
c1af164c8b332d00f83b411fb2ca9a4a62c4aaa854ac6f21aba7f793942db8fd
|
|
BLAKE2b-256 checksum How to use checksums |
7c2bc1f662a25e13dee835e14a4d31cf83817f11c72d844c223f4d3d7af1a893
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | cytimes-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 11.4 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
b7e410a3f7e70ea47b1e88440b15f07bace982161b838fff1e695b2f59be86c8
|
|
BLAKE2b-256 checksum How to use checksums |
cab80cea936ff075d8e2763c7fd1d61a579f8b7591ee54d9535012020b839b3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cytimes-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.2 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
b433db8c23be4a7cb2cecbd4ac1ab79bb86f45a2cd70bbd96757ad5492a5a309
|
|
BLAKE2b-256 checksum How to use checksums |
bd39a14b93d3764e359e45a88609d5501bc2979e6409c221406335d3986e6484
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp313-cp313-macosx_10_13_universal2.whl
| Download URL | cytimes-3.1.0-cp313-cp313-macosx_10_13_universal2.whl |
|---|---|
| Size | 5.3 MB |
| Tags | CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
5ba8d9556271cebd8d52fcab592866ce26c84e68cc4794cd01b2e637f0894a19
|
|
BLAKE2b-256 checksum How to use checksums |
c6760840fe7008c1e8bbea8c90af479e9a4b17f708962017bae5053293d2163a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp312-cp312-win_amd64.whl
| Download URL | cytimes-3.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
3f1a20a28368498eca198bd471b2da8abac4b09555d794c100ac5772b9bd9f18
|
|
BLAKE2b-256 checksum How to use checksums |
a99dd76e165670d477d0dc2435fba40bfd0ede74faa3a8028177529997a6e28e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp312-cp312-win32.whl
| Download URL | cytimes-3.1.0-cp312-cp312-win32.whl |
|---|---|
| Size | 3.8 MB |
| Tags | CPython 3.12 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
9a390d351f02e94652665d61eb91ece8b8c7af34b955088ca9a4c44916f46890
|
|
BLAKE2b-256 checksum How to use checksums |
e5385101a80f653cb29da1c83072aa331bb7b50e284d7d8da3176b9f80c31936
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | cytimes-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 11.5 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
a9a919444a907fb3797fa1a0216b518ce9acef061da19eac1ee2884698e8edb0
|
|
BLAKE2b-256 checksum How to use checksums |
efe300fbefcf79482eae30a256a41f094ddfa324fe7562b0014467257285d4e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cytimes-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.2 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
98947187747e9b826e7a7e549056306c4ef5bb37ba6c7c9d340e1d68eb0c58c2
|
|
BLAKE2b-256 checksum How to use checksums |
15e730e2a071df4ccba1084670724440c9d9e8f1ea671998a2e1fd35479ee219
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp312-cp312-macosx_10_13_universal2.whl
| Download URL | cytimes-3.1.0-cp312-cp312-macosx_10_13_universal2.whl |
|---|---|
| Size | 5.3 MB |
| Tags | CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
280b9d9b19dd727530471690db396e568598a638451573725586275a7f91fd74
|
|
BLAKE2b-256 checksum How to use checksums |
575c93e1e9832599fb96e8c6fac726784389ed91fe1877e5c50047442954aeb2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp311-cp311-win_amd64.whl
| Download URL | cytimes-3.1.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f37f42e16e4cf8a906d4047a87312e6f64e82e9571a5de4e5242a3c110760f43
|
|
BLAKE2b-256 checksum How to use checksums |
cf5baece9655cfdb9636e4633e63ef504fc3d1ba1c7807b4814ef3a46d4ea0d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp311-cp311-win32.whl
| Download URL | cytimes-3.1.0-cp311-cp311-win32.whl |
|---|---|
| Size | 3.8 MB |
| Tags | CPython 3.11 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
c8c6039dc3da2b29ab9d28063aa17bae92dffb603418744cda4257a09ad353a2
|
|
BLAKE2b-256 checksum How to use checksums |
00feb932d64f01a733899425b7c93f32936369aec14e04217433826da43637e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | cytimes-3.1.0-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 11.9 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
d1c48c754a36f21f9c67e01e1327dfb6fc985419915d6d36f41a3f8812ff419e
|
|
BLAKE2b-256 checksum How to use checksums |
8952e9aedb91c84eed5c9b54da68d0e855908cc32bd98eb2741decc0c969781a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cytimes-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.6 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cc7e06f06fbb2c4e53762ba50abf36463da0a270fc74d840fd5bd852fe5a82ba
|
|
BLAKE2b-256 checksum How to use checksums |
c49f72445fda0c1ab9ac612f8d3208819486431d9b295e4ed80928b1e09e00b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp311-cp311-macosx_10_9_universal2.whl
| Download URL | cytimes-3.1.0-cp311-cp311-macosx_10_9_universal2.whl |
|---|---|
| Size | 5.3 MB |
| Tags | CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
1365d5fb4eeee1df43e43d616699eed78e3e51708d6ea75e1ae8b049d8b88283
|
|
BLAKE2b-256 checksum How to use checksums |
e6ad2ed9501da675da6dce33be6e897cebfaccd8da006b0fd431a4656505eb59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp310-cp310-win_amd64.whl
| Download URL | cytimes-3.1.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
95cd65aea69620e99921c7230cd120c2822471320acd1382048ea1e79d1a61c9
|
|
BLAKE2b-256 checksum How to use checksums |
56c564b63b1982dfdf8d33a3eb9f1ba4474ebc46624c4d1ecfaad5535e434027
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp310-cp310-win32.whl
| Download URL | cytimes-3.1.0-cp310-cp310-win32.whl |
|---|---|
| Size | 3.8 MB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
9dce9033999738525812ad08b24adc2e8d07d4e1d79f4a5b332f73370a7c0ba7
|
|
BLAKE2b-256 checksum How to use checksums |
febdc7c63c021b0bf623bbca4161c08462ab1c8a759019e41c2d50098218cebc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | cytimes-3.1.0-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 11.4 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
9114a35cde7c9e3e6ec54ac0487c2f9871ba02390b24f306c667666cbec4298e
|
|
BLAKE2b-256 checksum How to use checksums |
e92384b8d4dd3dbfeb2310c9973b27162d984a5cea5076fc7b489c9a33f444aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cytimes-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.2 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
07074685915a4703cf3a208168b0699d87007e1873a6cf2553c9073f989cc160
|
|
BLAKE2b-256 checksum How to use checksums |
66cf186eec601b8c09893b6f27f6ebd404ac8dfc9bda6a6924446da34aaa6ee9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cytimes-3.1.0-cp310-cp310-macosx_10_9_universal2.whl
| Download URL | cytimes-3.1.0-cp310-cp310-macosx_10_9_universal2.whl |
|---|---|
| Size | 5.3 MB |
| Tags | CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
f4a9bcf9dd2c824950f566e73361c264391feab40afd8449a5900253f2be226a
|
|
BLAKE2b-256 checksum How to use checksums |
62ce15fecd04d6f0bee12350e7942975d1432ed701ca869013ada8bf0c1197d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for cytimes 3.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.