Make working with datetime easier in Python.
Project description
Easy management of python datetime & pandas time Series.
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
Provides two classes to make working with datetime easier in Python.
pydt
(Python Datetime)pddt
(Pandas Series / DatetimeIndex)
Both provide similar functionalities:
- Parse datetime strings or datetime objects.
- Access in different data types.
- Conversion to numeric values (ordinal, total_seconds, timestamp, etc.)
- Calender properties (days_in_month, weekday, etc.)
- Year manipulation (to_next_year, to_year, etc.)
- Quarter manipulation (to_next_quarter, to_quarter, etc.)
- Month manipulation (to_next_month, to_to_month, etc.)
- Day manipulation (to_next_week, to_week, etc.)
- Time manipulation (to_time_start, to_time, etc.)
- Timezone manipulation (tz_localize, tz_convert, etc.)
- Frequency manipulation (freq_round, freq_ceil, freq_floor, etc.)
- Delta adjustment (Equivalent to adding
relativedelta
orpandas.DateOffset
) - Delta difference (Calcualte the absolute delta between two datetimes)
- Supports addition / substruction / comparision.
Parser Performance
A major focus of this package is to optimize the datetime string parsing speed (through Cython), meanwhile maintains the maximum support for different datetime string formats. The following results are tested on an Apple M1 Pro:
Strict Isoformat without Timezone
------------------------ Strict Isoformat w/o Timezone -------------------------
Text: '2023-08-01 12:00:00.000001' Rounds: 100,000
- pydt(): 0.056599s
- direct create: 0.013991s Perf Diff: -3.045365x
- dt.fromisoformat(): 0.010218s Perf Diff: -4.539231x
- pendulum.parse(): 0.406704s Perf Diff: +6.185740x
- dateutil.isoparse(): 0.301066s Perf Diff: +4.319307x
- dateutil.parse(): 2.122079s Perf Diff: +36.493413x
##### Strict Isoformat with Timezone
Strict Isoformat with Timezone
------------------------ Strict Isoformat w/t Timezone -------------------------
Text: '2023-08-01 12:00:00.000001+02:00' Rounds: 100,000
- pydt(): 0.065986s
- direct create: 0.014609s Perf Diff: -3.516726x
- dt.fromisoformat(): 0.013402s Perf Diff: -3.923484x
- pendulum.parse(): 0.412670s Perf Diff: +5.253882x
- dateutil.isoparse(): 0.457038s Perf Diff: +5.926272x
- dateutil.parse(): 2.611803s Perf Diff: +38.581074x
Loose Isoformat without Timezone
------------------------- Loose Isoformat w/o Timezone -------------------------
Text: '2023/08/01 12:00:00.000001' Rounds: 100,000
- pydt(): 0.057039s
- pendulum.parse(): 0.838589s Perf Diff: +13.701917x
- dateutil.parse(): 2.062576s Perf Diff: +35.160516x
Loose Isoformat with Timezone
------------------------- Loose Isoformat w/t Timezone -------------------------
Text: '2023/08/01 12:00:00.000001+02:00' Rounds: 100,000
- pydt(): 0.066949s
- dateutil.parse(): 2.612083s Perf Diff: +38.016035x
Parse Datetime Strings
---------------------------- Parse Datetime Strings ----------------------------
Total datetime strings: #378 Rounds: 1,000
- pydt(): 0.587047s
- dateutil.parse(): 7.182461s Perf Diff: +11.234897x
Usage for <'pydt'>
For more detail information, please refer to class methods' documentation.
from cytimes import pydt, cytimedelta
import datetime, numpy as np, pandas as pd
# Create
pt = pydt('2021-01-01 00:00:00') # ISO format string
pt = pydt("2021 Jan 1 11:11 AM") # datetime string
pt = pydt(datetime.datetime(2021, 1, 1, 0, 0, 0)) # <'datetime.datetime'>
pt = pydt(datetime.date(2021, 1, 1)) # <'datetime.date'>
pt = pydt(pd.Timestamp("2021-01-01 00:00:00")) # <'pandas.Timestamp'>
pt = pydt(np.datetime64("2021-01-01 00:00:00")) # <'numpy.datetime64'>
pt = pydt.now() # current time
pt = pydt.from_ordinal(1)
pt = pydt.from_timestamp(1)
...
# . multi-language support
# . common month / weekday / ampm
# . EN / DE / FR / IT / ES / PT / NL / SE / PL / TR / CN
pt = pydt("februar 23, 2023") # DE
pt = pydt("martes mayo 23, 2023") # ES
pt = pydt("2023年3月15日 12时15分50秒") # CN
...
# Access in different data types
pt.dt # <'datetime.datetime'>
pt.date # <'datetime.date'>
pt.time # <'datetime.time'>
pt.timetz # <'datetime.time'> (with timezone)
pt.ts # <'pandas.Timestamp'>
pt.dt64 # <'numpy.datetime64'>
...
# Conversion
pt.dt_iso # <'str'> ISO format
pt.ordinal # <'int'> ordinal of the date
pt.timestamp # <'float'> timestamp
...
# Calender
pt.is_leapyear() # <'bool'>
pt.days_bf_year # <'int'>
pt.days_in_month # <'int'>
pt.weekday # <'int'>
pt.isocalendar # <'dict'>
...
# Year manipulation
pt.to_year_lst() # Go to the last day of the current year.
pt.to_curr_year("Feb", 30) # Go to the last day in February of the current year.
pt.to_year(-3, "Mar", 15) # Go to the 15th day in March of the current year(-3).
...
# Quarter manipulation
pt.to_quarter_1st() # Go to the first day of the current quarter.
pt.to_curr_quarter(2, 0) # Go the the 2nd month of the current quarter with the same day.
pt.to_quarter(3, 2, 31) # Go the the last day of the 2nd month of the current quarter(+3).
...
# Month manipulation
pt.to_month_lst() # Go to the last day of the current month.
pt.to_next_month(31) # Go to the last day of the next month.
pt.to_month(3, 15) # Go the the 15th day of the current month(+3).
...
# Weekday manipulation
pt.to_monday() # Go to Monday of the current week.
pt.to_curr_weekday("Sun") # Go to Sunday of the current week.
pt.to_weekday(-2, "Sat") # Go to Saturday of the current week(-2).
...
# Day manipulation
pt.to_tomorrow() # Go to Tomorrow.
pt.to_yesterday() # Go to Yesterday.
pt.to_day(-2) # Go to today(-2).
...
# Time manipulation
pt.to_time_start() # Go to the start of the time (00:00:00).
pt.to_time_end() # Go to the end of the time (23:59:59.999999).
pt.to_time(1, 1, 1, 1, 1) # Go to specific time (01:01:01.001001).
...
# Timezone manipulation
pt.tz_localize("UTC") # Equivalent to 'datetime.replace(tzinfo=UTC).
pt.tz_convert("CET") # Convert to "CET" timezone.
pt.tz_switch(targ_tz="CET", base_tz="UTC") # Localize to "UTC" & convert to "CET".
# Frequency manipulation
pt.freq_round("D") # Round datetime to the resolution of hour.
pt.freq_ceil("s") # Ceil datetime to the resolution of second.
pt.freq_floor("us") # Floor datetime to the resolution of microsecond.
# Delta
pt.add_delta(years=1, months=1, days=1, milliseconds=1) # Add Y/M/D & ms.
pt.cal_delta("2023-01-01 12:00:00", unit="D", inclusive="both") # Calcualte the absolute delta in days.
...
# Addition Support
# <'datetime.timedelta>, <'pandas.Timedelta'>, <'numpy.timedelta64'>
# <'dateutil.relativedelta'>, <'cytimes.cytimedelta'>
pt = pt + datetime.timedelta(1)
pt = pt + cytimedelta(years=1, months=1)
...
# Substraction Support
# <'datetime.datetime'>, <'pandas.Timestamp'>, <'numpy.datetime64'>, <'str'>, <'pydt'>
# <'datetime.timedelta>, <'pandas.Timedelta'>, <'numpy.timedelta64'>
# <'dateutil.relativedelta'>, <'cytimes.cytimedelta'>
delta = pt - datetime.datetime(1970, 1, 1)
delta = pt - "1970-01-01"
pt = pt - datetime.timedelta(1)
...
# Comparison Support
# <'datetime.datetime'>, <'pandas.Timestamp'>, <'str'>, <'pydt'>
res = pt == datetime.datetime(1970, 1, 1)
res = pt == "1970-01-01"
...
Usage for <'pddt'>
Class pddt
provides similar functionality to pydt
(methods and properties, see examples for pydt
), but is designed to work with <'pandas.Series'>
and <'pandas.DatetimeIndex>
.
Out of bounds for nanoseconds
When encountering datetime values that are out of bounds for nanoseconds datetime64[ns]
, pddt
will automatically try to parse the value into microseconds datetime64[us]
for greater compatibility.
from cytimes import pddt
dts = [
"2000-01-02 03:04:05.000006",
"2100-01-02 03:04:05.000006",
"2200-01-02 03:04:05.000006",
"2300-01-02 03:04:05.000006", # out of bounds
]
pt = pddt(dts)
print(pt)
0 2000-01-02 03:04:05.000006
1 2100-01-02 03:04:05.000006
2 2200-01-02 03:04:05.000006
3 2300-01-02 03:04:05.000006
dtype: datetime64[us]
Specify desired time unit resolution
Sometimes the initial data is alreay a <'pandas.Series'> but defaults to datetime64[ns]
, <'pddt'> supports specifing the the desired time 'unit' so adding delta
or manipulating year
can be within bounds.
from pandas import Series
from datetime import datetime
dts = [
datetime(2000, 1, 2),
datetime(2100, 1, 2),
datetime(2200, 1, 2),
]
ser = Series(dts) # Series defaults to 'datetime64[ns]'
pt = pddt(ser, unit="us")
0 2000-01-02
1 2100-01-02
2 2200-01-02
dtype: datetime64[us]
Direct assignment to DataFrame
from pandas import DataFrame
df = DataFrame()
df["pddt"] = pt
print(df)
pddt
0 2000-01-02 03:04:05.000006
1 2100-01-02 03:04:05.000006
2 2200-01-02 03:04:05.000006
3 2300-01-02 03:04:05.000006
Acknowledgements
cyTimes is based on several open-source repositories.
cyTimes makes modification of the following open-source repositories:
- dateutil
The class <'Parser'> and <'cytimedelta'> in this package is basically a cythonized version of <'dateutil.parser'> and <'dateutil.relativedelta'>. All credits go to the original authors and contributors of the
dateutil
library.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file cytimes-1.0.3.tar.gz
.
File metadata
- Download URL: cytimes-1.0.3.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80f09b2ceec6614a64f2c2d6706a539c21652a83397b07ec164e5332025f6acb |
|
MD5 | 7501101bb164120c25b58b81a28e19f3 |
|
BLAKE2b-256 | 4c3525d17d0c38248246321f15dfc5f46f2803a3f5fd001dbc9d1388d92b687b |
File details
Details for the file cytimes-1.0.3-cp312-cp312-win_amd64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d612fad1cb49fd5224a2a3442b17fc33d87ce5b2c9296fbad4e3603313db5dba |
|
MD5 | 060a42dd9a24a7dc5c087fc4bb702dcf |
|
BLAKE2b-256 | 12275a8a316712ea1862275760aeb10e29ca0cef8479b92b1645c561a659960b |
File details
Details for the file cytimes-1.0.3-cp312-cp312-win32.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp312-cp312-win32.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ab000b5fe25cc5c2ca5ddfa898bada4758245af031f8786b1a428ec0936edeb |
|
MD5 | ffd8162176e5d916f4e709ee3816b289 |
|
BLAKE2b-256 | d3805c5e8b03a3aa87907c5e4719c16dfcce260e8bc44645532b8fac9c16e867 |
File details
Details for the file cytimes-1.0.3-cp312-cp312-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp312-cp312-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 6.1 MB
- Tags: CPython 3.12, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 480b4f0e0447bc80fce068883d63f4db9e8ac5a59e1788b8f16db3cda5db73fc |
|
MD5 | 204862302a136f150714e5f8480c09db |
|
BLAKE2b-256 | 903aed115b5895e430371b318ce6838047189d82fd25566916a3bc19ce479298 |
File details
Details for the file cytimes-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.0 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24ad4144f8a70654ebc3b54e5f97398f1f3a52937d4e025d48d75c6cd294c797 |
|
MD5 | 8a0c57aadd6440202f1fff548e5cc104 |
|
BLAKE2b-256 | 8a1d4768789961d66dcd97be28303f69aaf1e0648c6dd9d136c92740a26c8b64 |
File details
Details for the file cytimes-1.0.3-cp312-cp312-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp312-cp312-macosx_10_9_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.12, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2add145a841629c3d24ecbb5a6ef94cab4e3f6378c6bfc06138072ed6e6a8981 |
|
MD5 | 1be1cdbd2d8c27c65a2a9cb01f08714e |
|
BLAKE2b-256 | 5ad4e3483f657fa39396e1e1f248fe1439d4e26c1028be96ec4d90cc087f8951 |
File details
Details for the file cytimes-1.0.3-cp312-cp312-macosx_10_9_universal2.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp312-cp312-macosx_10_9_universal2.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.12, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae534039b94a9985b757d1ad9238816e088f1405eae6e39cb2b3c3f1ccc88b42 |
|
MD5 | 7c525322887fef400c2d4bb32ee405d7 |
|
BLAKE2b-256 | 1727bab1de38674482eee60011d26ed02bd143892da23aae1b2367c149785ce8 |
File details
Details for the file cytimes-1.0.3-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92ab13104c58609ff8e204c11d7e34f53f780104fa492e8dfc35659bf81a3c7a |
|
MD5 | 51260d03249fe9694074e6ee198d9b36 |
|
BLAKE2b-256 | c5773db7f81676e1ac2a4b47d094aed5406079e2ca3178e262956e7985604531 |
File details
Details for the file cytimes-1.0.3-cp311-cp311-win32.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp311-cp311-win32.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cce8e7d97b2642f461375d432f25d67f7d68758eded8537e1a1a7866e680bcd |
|
MD5 | fc1c157cad139b7d864bfe90d44a28e3 |
|
BLAKE2b-256 | c1d7b7c8b2048cb8b495f9c653ace4c55fa6712ef157974f0733a93aef5ee8ff |
File details
Details for the file cytimes-1.0.3-cp311-cp311-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp311-cp311-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 6.3 MB
- Tags: CPython 3.11, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3f557cf70f4ae191d847f930715c76fee01c96277f6abeea24add61eb397dba |
|
MD5 | 23da8167c1fa444f1f085cbb782e014a |
|
BLAKE2b-256 | c4164790bc46be727ff7a667e4da3d511773696321c32c85139507a343442818 |
File details
Details for the file cytimes-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.3 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af1abfbba17ce1ff973f0983a4ab789cd0def6cd95d82b1dede2163a941ab530 |
|
MD5 | f9d54c5a43c80d92fd80191d2ac818bc |
|
BLAKE2b-256 | e438ca672d2d909b768337c7e7684161af6d2e6ac3229d7991b3f55a0bd7c72f |
File details
Details for the file cytimes-1.0.3-cp311-cp311-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad5ad50ff737c6b39f2edf994f03adba4a4e480b6b4e3c18c285d30d44642216 |
|
MD5 | 7d5325a9f682d8fc91caa421aa4f5c5b |
|
BLAKE2b-256 | 438df1669ec0a9a0052c27e6228f7d29dac582eed5beb0d1706e1383062ac942 |
File details
Details for the file cytimes-1.0.3-cp311-cp311-macosx_10_9_universal2.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp311-cp311-macosx_10_9_universal2.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.11, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1323b903fe28175152b4628131100c1f1aecea84bf4e8cfd2e9a1abce6a4ca04 |
|
MD5 | b5202eb1e77a92a19f570f581d14db8b |
|
BLAKE2b-256 | adf31a28b52bc890859c420a71cfa63676aa88922522f1686479bff0bdd8c794 |
File details
Details for the file cytimes-1.0.3-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03eef4c6162f681f0a28a1e88a011a0a8f5fb8359574b4551dcf33ce45723a4e |
|
MD5 | 1d7554e0bca3c81f8572dd3a1c2dcc68 |
|
BLAKE2b-256 | 07a53d26949707d28e6c13ff23857af5a58ffb99977f2338ba998448653574b2 |
File details
Details for the file cytimes-1.0.3-cp310-cp310-win32.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp310-cp310-win32.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 391186f8a59f3857857c4e31b4de9b7071af99bb9506916e38fdd7800b87ebed |
|
MD5 | 6cc3805d0dae14c981995de953662b7d |
|
BLAKE2b-256 | 608744efe77be90623061a3783d587c34716213f44b6043397a306d33b9ac42e |
File details
Details for the file cytimes-1.0.3-cp310-cp310-musllinux_1_1_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp310-cp310-musllinux_1_1_x86_64.whl
- Upload date:
- Size: 6.0 MB
- Tags: CPython 3.10, musllinux: musl 1.1+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21dcc09b3db8d2d5694b945faa5f30620053a36cb2a50825c7f12cce5be03fb5 |
|
MD5 | 4b180c671d38bf63541e259bf4a5e21d |
|
BLAKE2b-256 | 799744669717b55650fc6dd6d62671fbb4afb27fb343309d2cccb5b7b3db125f |
File details
Details for the file cytimes-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.9 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddd78e992279a178331bd02f61ab8126d6cd66f415c0d0d789f897b5ac4531c5 |
|
MD5 | b9fab063006afac88ab515fc514012be |
|
BLAKE2b-256 | b06b0217c10c3be980f75782d22476cadf2584d1f5017febe6bfd313a6596b6c |
File details
Details for the file cytimes-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6c87dd36f9628a378dbf3e9f4e5c80c97125eff4cc3784336847e4dce4f88a5 |
|
MD5 | 9c832e71d9be80ef4af0e2878bb0e639 |
|
BLAKE2b-256 | acd3221b8b65486f2a63b6ffd7ba1743deee28548907f300e52a5378766edeef |
File details
Details for the file cytimes-1.0.3-cp310-cp310-macosx_10_9_universal2.whl
.
File metadata
- Download URL: cytimes-1.0.3-cp310-cp310-macosx_10_9_universal2.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a96d45bd76052b6fc7fccb21eeb2b732e86a1fb10473eff99eb2032991ed0564 |
|
MD5 | cc5ce9e1c0ddf5a482017bf5a8f9b75a |
|
BLAKE2b-256 | f7c5d8dce65682889059436dee1e5e9be242ec97e9c2b791bf389827d082a345 |