pythonlib 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +41 -138
- package/dist/{chunk-P3SGIF72.js → chunk-4KYJT3DR.js} +8 -6
- package/dist/chunk-4KYJT3DR.js.map +1 -0
- package/dist/{chunk-3CSEXTA7.js → chunk-4QG3772L.js} +53 -53
- package/dist/chunk-4QG3772L.js.map +1 -0
- package/dist/{chunk-IVYYI2VR.js → chunk-6POEDI34.js} +1 -1
- package/dist/chunk-6POEDI34.js.map +1 -0
- package/dist/{chunk-UFMTN4T4.js → chunk-6ZAJ37MR.js} +6 -5
- package/dist/chunk-6ZAJ37MR.js.map +1 -0
- package/dist/{chunk-V63LKSA3.js → chunk-7TH4FCVQ.js} +24 -24
- package/dist/chunk-7TH4FCVQ.js.map +1 -0
- package/dist/{chunk-TJFGYXBJ.js → chunk-CXKGPD5D.js} +64 -61
- package/dist/chunk-CXKGPD5D.js.map +1 -0
- package/dist/{chunk-OMQNGE6T.js → chunk-EE7SK2GV.js} +33 -27
- package/dist/chunk-EE7SK2GV.js.map +1 -0
- package/dist/{chunk-WAONBJE5.js → chunk-H76SKASU.js} +36 -36
- package/dist/chunk-H76SKASU.js.map +1 -0
- package/dist/{chunk-TOI6IG3T.js → chunk-HQ42WNKZ.js} +43 -16
- package/dist/chunk-HQ42WNKZ.js.map +1 -0
- package/dist/{chunk-HA5Y7PKO.js → chunk-LWO6BIAD.js} +36 -35
- package/dist/chunk-LWO6BIAD.js.map +1 -0
- package/dist/{collections-xN9Gi0TA.d.ts → collections-CJur5Wg-.d.ts} +5 -3
- package/dist/collections.d.ts +1 -1
- package/dist/collections.js +1 -1
- package/dist/{datetime-DRwFAiGV.d.ts → datetime-Bpce8gG2.d.ts} +17 -15
- package/dist/datetime.d.ts +1 -1
- package/dist/datetime.js +1 -1
- package/dist/{functools-St5GqpKG.d.ts → functools-NrsZAqJk.d.ts} +42 -26
- package/dist/functools.d.ts +1 -1
- package/dist/functools.js +19 -17
- package/dist/index.d.ts +56 -158
- package/dist/index.js +47 -137
- package/dist/index.js.map +1 -1
- package/dist/{itertools-Bj8XivI6.d.ts → itertools-Sjl1LB_0.d.ts} +35 -17
- package/dist/itertools.d.ts +1 -1
- package/dist/itertools.js +15 -11
- package/dist/{json-Xpk0kwSd.d.ts → json-DAlvCadU.d.ts} +7 -5
- package/dist/json.d.ts +1 -1
- package/dist/json.js +1 -1
- package/dist/{math-BrT4Aw3E.d.ts → math-DwEGjjQ-.d.ts} +2 -0
- package/dist/math.d.ts +1 -1
- package/dist/math.js +1 -1
- package/dist/{os-FRSJbEUH.d.ts → os-C6Nt7Ijx.d.ts} +45 -42
- package/dist/os.d.ts +1 -1
- package/dist/os.js +23 -23
- package/dist/{random-D5S5iSV3.d.ts → random-BJv_rSpL.d.ts} +24 -22
- package/dist/random.d.ts +1 -1
- package/dist/random.js +21 -21
- package/dist/{re-DSxiURqN.d.ts → re-B1CHCgyr.d.ts} +17 -15
- package/dist/re.d.ts +1 -1
- package/dist/re.js +7 -7
- package/dist/string.d.ts +51 -48
- package/dist/string.js +13 -13
- package/package.json +30 -11
- package/dist/chunk-3CSEXTA7.js.map +0 -1
- package/dist/chunk-HA5Y7PKO.js.map +0 -1
- package/dist/chunk-IVYYI2VR.js.map +0 -1
- package/dist/chunk-OMQNGE6T.js.map +0 -1
- package/dist/chunk-P3SGIF72.js.map +0 -1
- package/dist/chunk-TJFGYXBJ.js.map +0 -1
- package/dist/chunk-TOI6IG3T.js.map +0 -1
- package/dist/chunk-UFMTN4T4.js.map +0 -1
- package/dist/chunk-V63LKSA3.js.map +0 -1
- package/dist/chunk-WAONBJE5.js.map +0 -1
|
@@ -46,7 +46,7 @@ var timedelta = class _timedelta {
|
|
|
46
46
|
this.days -= 1;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
totalSeconds() {
|
|
50
50
|
return this.days * 24 * 60 * 60 + this.seconds + this.microseconds / 1e6;
|
|
51
51
|
}
|
|
52
52
|
toString() {
|
|
@@ -81,7 +81,7 @@ var timedelta = class _timedelta {
|
|
|
81
81
|
}
|
|
82
82
|
multiply(n) {
|
|
83
83
|
return new _timedelta({
|
|
84
|
-
microseconds: Math.round(this.
|
|
84
|
+
microseconds: Math.round(this.totalSeconds() * 1e6 * n)
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
static min = new _timedelta({ days: -999999999 });
|
|
@@ -114,18 +114,18 @@ var date = class _date {
|
|
|
114
114
|
const now = /* @__PURE__ */ new Date();
|
|
115
115
|
return new _date(now.getFullYear(), now.getMonth() + 1, now.getDate());
|
|
116
116
|
}
|
|
117
|
-
static
|
|
117
|
+
static fromTimestamp(timestamp) {
|
|
118
118
|
const d = new Date(timestamp * 1e3);
|
|
119
119
|
return new _date(d.getFullYear(), d.getMonth() + 1, d.getDate());
|
|
120
120
|
}
|
|
121
|
-
static
|
|
121
|
+
static fromIsoFormat(dateString) {
|
|
122
122
|
const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(dateString);
|
|
123
123
|
if (!match || !match[1] || !match[2] || !match[3]) {
|
|
124
|
-
throw new Error(`Invalid
|
|
124
|
+
throw new Error(`Invalid isoFormat string: '${dateString}'`);
|
|
125
125
|
}
|
|
126
126
|
return new _date(parseInt(match[1]), parseInt(match[2]), parseInt(match[3]));
|
|
127
127
|
}
|
|
128
|
-
static
|
|
128
|
+
static fromOrdinal(ordinal) {
|
|
129
129
|
const d = new Date(Date.UTC(1, 0, ordinal));
|
|
130
130
|
return new _date(d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate());
|
|
131
131
|
}
|
|
@@ -136,7 +136,7 @@ var date = class _date {
|
|
|
136
136
|
options?.day ?? this.day
|
|
137
137
|
);
|
|
138
138
|
}
|
|
139
|
-
|
|
139
|
+
toOrdinal() {
|
|
140
140
|
const d = new Date(Date.UTC(this.year, this.month - 1, this.day));
|
|
141
141
|
const epoch = new Date(Date.UTC(1, 0, 1));
|
|
142
142
|
return Math.floor((d.getTime() - epoch.getTime()) / (24 * 60 * 60 * 1e3)) + 1;
|
|
@@ -145,10 +145,10 @@ var date = class _date {
|
|
|
145
145
|
const d = new Date(this.year, this.month - 1, this.day);
|
|
146
146
|
return (d.getDay() + 6) % 7;
|
|
147
147
|
}
|
|
148
|
-
|
|
148
|
+
isoWeekday() {
|
|
149
149
|
return this.weekday() + 1;
|
|
150
150
|
}
|
|
151
|
-
|
|
151
|
+
isoCalendar() {
|
|
152
152
|
const d = new Date(this.year, this.month - 1, this.day);
|
|
153
153
|
const dayOfYear = Math.floor(
|
|
154
154
|
(d.getTime() - new Date(this.year, 0, 0).getTime()) / (24 * 60 * 60 * 1e3)
|
|
@@ -168,16 +168,16 @@ var date = class _date {
|
|
|
168
168
|
year += 1;
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
return [year, week, this.
|
|
171
|
+
return [year, week, this.isoWeekday()];
|
|
172
172
|
}
|
|
173
|
-
|
|
173
|
+
isoFormat() {
|
|
174
174
|
return `${String(this.year)}-${String(this.month).padStart(2, "0")}-${String(this.day).padStart(2, "0")}`;
|
|
175
175
|
}
|
|
176
176
|
strftime(format) {
|
|
177
177
|
return strftime(format, new datetime(this.year, this.month, this.day, 0, 0, 0, 0));
|
|
178
178
|
}
|
|
179
179
|
toString() {
|
|
180
|
-
return this.
|
|
180
|
+
return this.isoFormat();
|
|
181
181
|
}
|
|
182
182
|
__add__(delta) {
|
|
183
183
|
const d = new Date(this.year, this.month - 1, this.day + delta.days);
|
|
@@ -194,19 +194,19 @@ var date = class _date {
|
|
|
194
194
|
return new timedelta({ days: Math.floor(diffMs / (24 * 60 * 60 * 1e3)) });
|
|
195
195
|
}
|
|
196
196
|
__lt__(other) {
|
|
197
|
-
return this.
|
|
197
|
+
return this.toOrdinal() < other.toOrdinal();
|
|
198
198
|
}
|
|
199
199
|
__le__(other) {
|
|
200
|
-
return this.
|
|
200
|
+
return this.toOrdinal() <= other.toOrdinal();
|
|
201
201
|
}
|
|
202
202
|
__gt__(other) {
|
|
203
|
-
return this.
|
|
203
|
+
return this.toOrdinal() > other.toOrdinal();
|
|
204
204
|
}
|
|
205
205
|
__ge__(other) {
|
|
206
|
-
return this.
|
|
206
|
+
return this.toOrdinal() >= other.toOrdinal();
|
|
207
207
|
}
|
|
208
208
|
__eq__(other) {
|
|
209
|
-
return this.
|
|
209
|
+
return this.toOrdinal() === other.toOrdinal();
|
|
210
210
|
}
|
|
211
211
|
static min = new _date(1, 1, 1);
|
|
212
212
|
static max = new _date(9999, 12, 31);
|
|
@@ -229,10 +229,10 @@ var time = class _time {
|
|
|
229
229
|
this.microsecond = microsecond;
|
|
230
230
|
this.tzinfo = null;
|
|
231
231
|
}
|
|
232
|
-
static
|
|
232
|
+
static fromIsoFormat(timeString) {
|
|
233
233
|
const match = /^(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?$/.exec(timeString);
|
|
234
234
|
if (!match || !match[1] || !match[2] || !match[3]) {
|
|
235
|
-
throw new Error(`Invalid
|
|
235
|
+
throw new Error(`Invalid isoFormat string: '${timeString}'`);
|
|
236
236
|
}
|
|
237
237
|
const microsecond = match[4] ? parseInt(match[4].padEnd(6, "0").slice(0, 6)) : 0;
|
|
238
238
|
return new _time(parseInt(match[1]), parseInt(match[2]), parseInt(match[3]), microsecond);
|
|
@@ -245,7 +245,7 @@ var time = class _time {
|
|
|
245
245
|
options?.microsecond ?? this.microsecond
|
|
246
246
|
);
|
|
247
247
|
}
|
|
248
|
-
|
|
248
|
+
isoFormat(timespec = "auto") {
|
|
249
249
|
const hh = String(this.hour).padStart(2, "0");
|
|
250
250
|
const mm = String(this.minute).padStart(2, "0");
|
|
251
251
|
const ss = String(this.second).padStart(2, "0");
|
|
@@ -275,7 +275,7 @@ var time = class _time {
|
|
|
275
275
|
);
|
|
276
276
|
}
|
|
277
277
|
toString() {
|
|
278
|
-
return this.
|
|
278
|
+
return this.isoFormat();
|
|
279
279
|
}
|
|
280
280
|
static min = new _time(0, 0, 0, 0);
|
|
281
281
|
static max = new _time(23, 59, 59, 999999);
|
|
@@ -314,7 +314,7 @@ var datetime = class _datetime extends date {
|
|
|
314
314
|
d.getMilliseconds() * 1e3
|
|
315
315
|
);
|
|
316
316
|
}
|
|
317
|
-
static
|
|
317
|
+
static utcNow() {
|
|
318
318
|
const d = /* @__PURE__ */ new Date();
|
|
319
319
|
return new _datetime(
|
|
320
320
|
d.getUTCFullYear(),
|
|
@@ -326,7 +326,7 @@ var datetime = class _datetime extends date {
|
|
|
326
326
|
d.getUTCMilliseconds() * 1e3
|
|
327
327
|
);
|
|
328
328
|
}
|
|
329
|
-
static
|
|
329
|
+
static fromTimestamp(timestamp) {
|
|
330
330
|
const d = new Date(timestamp * 1e3);
|
|
331
331
|
return new _datetime(
|
|
332
332
|
d.getFullYear(),
|
|
@@ -338,7 +338,7 @@ var datetime = class _datetime extends date {
|
|
|
338
338
|
d.getMilliseconds() * 1e3
|
|
339
339
|
);
|
|
340
340
|
}
|
|
341
|
-
static
|
|
341
|
+
static utcfromTimestamp(timestamp) {
|
|
342
342
|
const d = new Date(timestamp * 1e3);
|
|
343
343
|
return new _datetime(
|
|
344
344
|
d.getUTCFullYear(),
|
|
@@ -350,14 +350,14 @@ var datetime = class _datetime extends date {
|
|
|
350
350
|
d.getUTCMilliseconds() * 1e3
|
|
351
351
|
);
|
|
352
352
|
}
|
|
353
|
-
static
|
|
353
|
+
static fromIsoFormat(s) {
|
|
354
354
|
const match = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?$/.exec(s);
|
|
355
355
|
if (!match || !match[1] || !match[2] || !match[3] || !match[4] || !match[5] || !match[6]) {
|
|
356
356
|
const dateMatch = /^(\d{4})-(\d{2})-(\d{2})$/.exec(s);
|
|
357
357
|
if (dateMatch && dateMatch[1] && dateMatch[2] && dateMatch[3]) {
|
|
358
358
|
return new _datetime(parseInt(dateMatch[1]), parseInt(dateMatch[2]), parseInt(dateMatch[3]));
|
|
359
359
|
}
|
|
360
|
-
throw new Error(`Invalid
|
|
360
|
+
throw new Error(`Invalid isoFormat string: '${s}'`);
|
|
361
361
|
}
|
|
362
362
|
const microsecond = match[7] ? parseInt(match[7].padEnd(6, "0").slice(0, 6)) : 0;
|
|
363
363
|
return new _datetime(
|
|
@@ -405,10 +405,10 @@ var datetime = class _datetime extends date {
|
|
|
405
405
|
);
|
|
406
406
|
return d.getTime() / 1e3;
|
|
407
407
|
}
|
|
408
|
-
|
|
409
|
-
const dateStr = super.
|
|
408
|
+
isoFormat(sep = "T", timespec = "auto") {
|
|
409
|
+
const dateStr = super.isoFormat();
|
|
410
410
|
const t = new time(this.hour, this.minute, this.second, this.microsecond);
|
|
411
|
-
return `${dateStr}${sep}${t.
|
|
411
|
+
return `${dateStr}${sep}${t.isoFormat(timespec)}`;
|
|
412
412
|
}
|
|
413
413
|
ctime() {
|
|
414
414
|
const days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
|
|
@@ -434,16 +434,16 @@ var datetime = class _datetime extends date {
|
|
|
434
434
|
return strftime(format, this);
|
|
435
435
|
}
|
|
436
436
|
toString() {
|
|
437
|
-
return this.
|
|
437
|
+
return this.isoFormat(" ");
|
|
438
438
|
}
|
|
439
439
|
__add__(delta) {
|
|
440
|
-
const totalMicroseconds = this.timestamp() * 1e6 + this.microsecond + delta.
|
|
441
|
-
return _datetime.
|
|
440
|
+
const totalMicroseconds = this.timestamp() * 1e6 + this.microsecond + delta.totalSeconds() * 1e6;
|
|
441
|
+
return _datetime.fromTimestamp(totalMicroseconds / 1e6);
|
|
442
442
|
}
|
|
443
443
|
__sub__(other) {
|
|
444
444
|
if (other instanceof timedelta) {
|
|
445
|
-
const totalMicroseconds = this.timestamp() * 1e6 + this.microsecond - other.
|
|
446
|
-
return _datetime.
|
|
445
|
+
const totalMicroseconds = this.timestamp() * 1e6 + this.microsecond - other.totalSeconds() * 1e6;
|
|
446
|
+
return _datetime.fromTimestamp(totalMicroseconds / 1e6);
|
|
447
447
|
}
|
|
448
448
|
if (other instanceof _datetime) {
|
|
449
449
|
const diff = this.timestamp() - other.timestamp();
|
|
@@ -645,6 +645,7 @@ function strptime(dateString, format) {
|
|
|
645
645
|
if (!found) throw new Error("Invalid month name");
|
|
646
646
|
break;
|
|
647
647
|
}
|
|
648
|
+
/* v8 ignore start -- rare edge cases @preserve */
|
|
648
649
|
case "%":
|
|
649
650
|
if (dateString[pos] !== "%") throw new Error("Expected %");
|
|
650
651
|
pos++;
|
|
@@ -677,4 +678,4 @@ export {
|
|
|
677
678
|
MAXYEAR,
|
|
678
679
|
datetime_exports
|
|
679
680
|
};
|
|
680
|
-
//# sourceMappingURL=chunk-
|
|
681
|
+
//# sourceMappingURL=chunk-LWO6BIAD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/datetime.ts"],"sourcesContent":["/**\n * Python datetime module for TypeScript\n *\n * Provides date and time handling matching Python's datetime module.\n *\n * @see {@link https://docs.python.org/3/library/datetime.html | Python datetime documentation}\n */\n\n// ============================================================================\n// timedelta class\n// ============================================================================\n\nexport class timedelta {\n readonly days: number\n readonly seconds: number\n readonly microseconds: number\n\n constructor(options?: {\n days?: number\n seconds?: number\n microseconds?: number\n milliseconds?: number\n minutes?: number\n hours?: number\n weeks?: number\n }) {\n let totalMicroseconds = 0\n\n if (options) {\n totalMicroseconds += (options.weeks ?? 0) * 7 * 24 * 60 * 60 * 1000000\n totalMicroseconds += (options.days ?? 0) * 24 * 60 * 60 * 1000000\n totalMicroseconds += (options.hours ?? 0) * 60 * 60 * 1000000\n totalMicroseconds += (options.minutes ?? 0) * 60 * 1000000\n totalMicroseconds += (options.seconds ?? 0) * 1000000\n totalMicroseconds += (options.milliseconds ?? 0) * 1000\n totalMicroseconds += options.microseconds ?? 0\n }\n\n // Normalize to days, seconds, microseconds\n const sign = totalMicroseconds < 0 ? -1 : 1\n totalMicroseconds = Math.abs(totalMicroseconds)\n\n this.microseconds = sign * (totalMicroseconds % 1000000)\n totalMicroseconds = Math.floor(totalMicroseconds / 1000000)\n\n this.seconds = sign * (totalMicroseconds % (24 * 60 * 60))\n this.days = sign * Math.floor(totalMicroseconds / (24 * 60 * 60))\n\n // Normalize negative values\n if (this.microseconds < 0) {\n ;(this as { microseconds: number }).microseconds += 1000000\n ;(this as { seconds: number }).seconds -= 1\n }\n if (this.seconds < 0) {\n ;(this as { seconds: number }).seconds += 24 * 60 * 60\n ;(this as { days: number }).days -= 1\n }\n }\n\n totalSeconds(): number {\n return this.days * 24 * 60 * 60 + this.seconds + this.microseconds / 1000000\n }\n\n toString(): string {\n const parts: string[] = []\n if (this.days !== 0) {\n parts.push(`${String(this.days)} day${Math.abs(this.days) !== 1 ? \"s\" : \"\"}`)\n }\n const hours = Math.floor(this.seconds / 3600)\n const minutes = Math.floor((this.seconds % 3600) / 60)\n const secs = this.seconds % 60\n const timeStr = `${String(hours)}:${String(minutes).padStart(2, \"0\")}:${String(secs).padStart(2, \"0\")}`\n if (this.microseconds > 0) {\n parts.push(`${timeStr}.${String(this.microseconds).padStart(6, \"0\")}`)\n } else {\n parts.push(timeStr)\n }\n return parts.join(\", \")\n }\n\n add(other: timedelta): timedelta {\n return new timedelta({\n days: this.days + other.days,\n seconds: this.seconds + other.seconds,\n microseconds: this.microseconds + other.microseconds\n })\n }\n\n subtract(other: timedelta): timedelta {\n return new timedelta({\n days: this.days - other.days,\n seconds: this.seconds - other.seconds,\n microseconds: this.microseconds - other.microseconds\n })\n }\n\n multiply(n: number): timedelta {\n return new timedelta({\n microseconds: Math.round(this.totalSeconds() * 1000000 * n)\n })\n }\n\n static min = new timedelta({ days: -999999999 })\n static max = new timedelta({\n days: 999999999,\n hours: 23,\n minutes: 59,\n seconds: 59,\n microseconds: 999999\n })\n static resolution = new timedelta({ microseconds: 1 })\n}\n\n// ============================================================================\n// date class\n// ============================================================================\n\nexport class date {\n readonly year: number\n readonly month: number\n readonly day: number\n\n constructor(year: number, month: number, day: number) {\n if (month < 1 || month > 12) {\n throw new Error(\"month must be in 1..12\")\n }\n const maxDay = new Date(year, month, 0).getDate()\n if (day < 1 || day > maxDay) {\n throw new Error(`day is out of range for month`)\n }\n this.year = year\n this.month = month\n this.day = day\n }\n\n static today(): date {\n const now = new Date()\n return new date(now.getFullYear(), now.getMonth() + 1, now.getDate())\n }\n\n static fromTimestamp(timestamp: number): date {\n const d = new Date(timestamp * 1000)\n return new date(d.getFullYear(), d.getMonth() + 1, d.getDate())\n }\n\n static fromIsoFormat(dateString: string): date {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(dateString)\n if (!match || !match[1] || !match[2] || !match[3]) {\n throw new Error(`Invalid isoFormat string: '${dateString}'`)\n }\n return new date(parseInt(match[1]), parseInt(match[2]), parseInt(match[3]))\n }\n\n static fromOrdinal(ordinal: number): date {\n // Days since year 1\n const d = new Date(Date.UTC(1, 0, ordinal))\n return new date(d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate())\n }\n\n replace(options?: { year?: number; month?: number; day?: number }): date {\n return new date(\n options?.year ?? this.year,\n options?.month ?? this.month,\n options?.day ?? this.day\n )\n }\n\n toOrdinal(): number {\n const d = new Date(Date.UTC(this.year, this.month - 1, this.day))\n const epoch = new Date(Date.UTC(1, 0, 1))\n return Math.floor((d.getTime() - epoch.getTime()) / (24 * 60 * 60 * 1000)) + 1\n }\n\n weekday(): number {\n // Monday is 0, Sunday is 6\n const d = new Date(this.year, this.month - 1, this.day)\n return (d.getDay() + 6) % 7\n }\n\n isoWeekday(): number {\n // Monday is 1, Sunday is 7\n return this.weekday() + 1\n }\n\n isoCalendar(): [number, number, number] {\n const d = new Date(this.year, this.month - 1, this.day)\n const dayOfYear = Math.floor(\n (d.getTime() - new Date(this.year, 0, 0).getTime()) / (24 * 60 * 60 * 1000)\n )\n const jan1 = new Date(this.year, 0, 1)\n const jan1Weekday = (jan1.getDay() + 6) % 7 // Monday = 0\n\n let week = Math.floor((dayOfYear + jan1Weekday - 1) / 7)\n let year = this.year\n\n if (week < 1) {\n year -= 1\n week = 52\n } else if (week > 52) {\n const dec31 = new Date(this.year, 11, 31)\n const dec31Weekday = (dec31.getDay() + 6) % 7\n if (dec31Weekday < 3) {\n week = 1\n year += 1\n }\n }\n\n return [year, week, this.isoWeekday()]\n }\n\n isoFormat(): string {\n return `${String(this.year)}-${String(this.month).padStart(2, \"0\")}-${String(this.day).padStart(2, \"0\")}`\n }\n\n strftime(format: string): string {\n return strftime(format, new datetime(this.year, this.month, this.day, 0, 0, 0, 0))\n }\n\n toString(): string {\n return this.isoFormat()\n }\n\n __add__(delta: timedelta): date {\n const d = new Date(this.year, this.month - 1, this.day + delta.days)\n return new date(d.getFullYear(), d.getMonth() + 1, d.getDate())\n }\n\n __sub__(other: date | timedelta): date | timedelta {\n if (other instanceof timedelta) {\n const d = new Date(this.year, this.month - 1, this.day - other.days)\n return new date(d.getFullYear(), d.getMonth() + 1, d.getDate())\n }\n // other is a date\n const d1 = new Date(this.year, this.month - 1, this.day)\n const d2 = new Date(other.year, other.month - 1, other.day)\n const diffMs = d1.getTime() - d2.getTime()\n return new timedelta({ days: Math.floor(diffMs / (24 * 60 * 60 * 1000)) })\n }\n\n __lt__(other: date): boolean {\n return this.toOrdinal() < other.toOrdinal()\n }\n\n __le__(other: date): boolean {\n return this.toOrdinal() <= other.toOrdinal()\n }\n\n __gt__(other: date): boolean {\n return this.toOrdinal() > other.toOrdinal()\n }\n\n __ge__(other: date): boolean {\n return this.toOrdinal() >= other.toOrdinal()\n }\n\n __eq__(other: date): boolean {\n return this.toOrdinal() === other.toOrdinal()\n }\n\n static min = new date(1, 1, 1)\n static max = new date(9999, 12, 31)\n static resolution = new timedelta({ days: 1 })\n}\n\n// ============================================================================\n// time class\n// ============================================================================\n\nexport class time {\n readonly hour: number\n readonly minute: number\n readonly second: number\n readonly microsecond: number\n readonly tzinfo: null\n\n constructor(hour: number = 0, minute: number = 0, second: number = 0, microsecond: number = 0) {\n if (hour < 0 || hour > 23) throw new Error(\"hour must be in 0..23\")\n if (minute < 0 || minute > 59) throw new Error(\"minute must be in 0..59\")\n if (second < 0 || second > 59) throw new Error(\"second must be in 0..59\")\n if (microsecond < 0 || microsecond > 999999) throw new Error(\"microsecond must be in 0..999999\")\n\n this.hour = hour\n this.minute = minute\n this.second = second\n this.microsecond = microsecond\n this.tzinfo = null\n }\n\n static fromIsoFormat(timeString: string): time {\n const match = /^(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?$/.exec(timeString)\n if (!match || !match[1] || !match[2] || !match[3]) {\n throw new Error(`Invalid isoFormat string: '${timeString}'`)\n }\n const microsecond = match[4] ? parseInt(match[4].padEnd(6, \"0\").slice(0, 6)) : 0\n return new time(parseInt(match[1]), parseInt(match[2]), parseInt(match[3]), microsecond)\n }\n\n replace(options?: {\n hour?: number\n minute?: number\n second?: number\n microsecond?: number\n }): time {\n return new time(\n options?.hour ?? this.hour,\n options?.minute ?? this.minute,\n options?.second ?? this.second,\n options?.microsecond ?? this.microsecond\n )\n }\n\n isoFormat(\n timespec: \"auto\" | \"hours\" | \"minutes\" | \"seconds\" | \"milliseconds\" | \"microseconds\" = \"auto\"\n ): string {\n const hh = String(this.hour).padStart(2, \"0\")\n const mm = String(this.minute).padStart(2, \"0\")\n const ss = String(this.second).padStart(2, \"0\")\n\n switch (timespec) {\n case \"hours\":\n return hh\n case \"minutes\":\n return `${hh}:${mm}`\n case \"seconds\":\n return `${hh}:${mm}:${ss}`\n case \"milliseconds\":\n return `${hh}:${mm}:${ss}.${String(Math.floor(this.microsecond / 1000)).padStart(3, \"0\")}`\n case \"microseconds\":\n return `${hh}:${mm}:${ss}.${String(this.microsecond).padStart(6, \"0\")}`\n case \"auto\":\n default:\n if (this.microsecond > 0) {\n return `${hh}:${mm}:${ss}.${String(this.microsecond).padStart(6, \"0\")}`\n }\n return `${hh}:${mm}:${ss}`\n }\n }\n\n strftime(format: string): string {\n return strftime(\n format,\n new datetime(1900, 1, 1, this.hour, this.minute, this.second, this.microsecond)\n )\n }\n\n toString(): string {\n return this.isoFormat()\n }\n\n static min = new time(0, 0, 0, 0)\n static max = new time(23, 59, 59, 999999)\n static resolution = new timedelta({ microseconds: 1 })\n}\n\n// ============================================================================\n// datetime class\n// ============================================================================\n\nexport class datetime extends date {\n readonly hour: number\n readonly minute: number\n readonly second: number\n readonly microsecond: number\n readonly tzinfo: null\n\n constructor(\n year: number,\n month: number,\n day: number,\n hour: number = 0,\n minute: number = 0,\n second: number = 0,\n microsecond: number = 0\n ) {\n super(year, month, day)\n if (hour < 0 || hour > 23) throw new Error(\"hour must be in 0..23\")\n if (minute < 0 || minute > 59) throw new Error(\"minute must be in 0..59\")\n if (second < 0 || second > 59) throw new Error(\"second must be in 0..59\")\n if (microsecond < 0 || microsecond > 999999) throw new Error(\"microsecond must be in 0..999999\")\n\n this.hour = hour\n this.minute = minute\n this.second = second\n this.microsecond = microsecond\n this.tzinfo = null\n }\n\n static override today(): datetime {\n return datetime.now()\n }\n\n static now(): datetime {\n const d = new Date()\n return new datetime(\n d.getFullYear(),\n d.getMonth() + 1,\n d.getDate(),\n d.getHours(),\n d.getMinutes(),\n d.getSeconds(),\n d.getMilliseconds() * 1000\n )\n }\n\n static utcNow(): datetime {\n const d = new Date()\n return new datetime(\n d.getUTCFullYear(),\n d.getUTCMonth() + 1,\n d.getUTCDate(),\n d.getUTCHours(),\n d.getUTCMinutes(),\n d.getUTCSeconds(),\n d.getUTCMilliseconds() * 1000\n )\n }\n\n static override fromTimestamp(timestamp: number): datetime {\n const d = new Date(timestamp * 1000)\n return new datetime(\n d.getFullYear(),\n d.getMonth() + 1,\n d.getDate(),\n d.getHours(),\n d.getMinutes(),\n d.getSeconds(),\n d.getMilliseconds() * 1000\n )\n }\n\n static utcfromTimestamp(timestamp: number): datetime {\n const d = new Date(timestamp * 1000)\n return new datetime(\n d.getUTCFullYear(),\n d.getUTCMonth() + 1,\n d.getUTCDate(),\n d.getUTCHours(),\n d.getUTCMinutes(),\n d.getUTCSeconds(),\n d.getUTCMilliseconds() * 1000\n )\n }\n\n static override fromIsoFormat(s: string): datetime {\n // Parse ISO format: YYYY-MM-DD[T]HH:MM:SS[.ffffff]\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?$/.exec(s)\n if (!match || !match[1] || !match[2] || !match[3] || !match[4] || !match[5] || !match[6]) {\n // Try date-only format\n const dateMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(s)\n if (dateMatch && dateMatch[1] && dateMatch[2] && dateMatch[3]) {\n return new datetime(parseInt(dateMatch[1]), parseInt(dateMatch[2]), parseInt(dateMatch[3]))\n }\n throw new Error(`Invalid isoFormat string: '${s}'`)\n }\n const microsecond = match[7] ? parseInt(match[7].padEnd(6, \"0\").slice(0, 6)) : 0\n return new datetime(\n parseInt(match[1]),\n parseInt(match[2]),\n parseInt(match[3]),\n parseInt(match[4]),\n parseInt(match[5]),\n parseInt(match[6]),\n microsecond\n )\n }\n\n static combine(d: date, t: time): datetime {\n return new datetime(d.year, d.month, d.day, t.hour, t.minute, t.second, t.microsecond)\n }\n\n static strptime(dateString: string, format: string): datetime {\n return strptime(dateString, format)\n }\n\n override replace(options?: {\n year?: number\n month?: number\n day?: number\n hour?: number\n minute?: number\n second?: number\n microsecond?: number\n }): datetime {\n return new datetime(\n options?.year ?? this.year,\n options?.month ?? this.month,\n options?.day ?? this.day,\n options?.hour ?? this.hour,\n options?.minute ?? this.minute,\n options?.second ?? this.second,\n options?.microsecond ?? this.microsecond\n )\n }\n\n date(): date {\n return new date(this.year, this.month, this.day)\n }\n\n time(): time {\n return new time(this.hour, this.minute, this.second, this.microsecond)\n }\n\n timestamp(): number {\n const d = new Date(\n this.year,\n this.month - 1,\n this.day,\n this.hour,\n this.minute,\n this.second,\n this.microsecond / 1000\n )\n return d.getTime() / 1000\n }\n\n override isoFormat(\n sep: string = \"T\",\n timespec: \"auto\" | \"hours\" | \"minutes\" | \"seconds\" | \"milliseconds\" | \"microseconds\" = \"auto\"\n ): string {\n const dateStr = super.isoFormat()\n const t = new time(this.hour, this.minute, this.second, this.microsecond)\n return `${dateStr}${sep}${t.isoFormat(timespec)}`\n }\n\n ctime(): string {\n const days = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"]\n const months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ]\n const dayName = days[this.weekday()] ?? \"???\"\n const monthName = months[this.month - 1] ?? \"???\"\n return `${dayName} ${monthName} ${String(this.day).padStart(2, \" \")} ${String(this.hour).padStart(2, \"0\")}:${String(this.minute).padStart(2, \"0\")}:${String(this.second).padStart(2, \"0\")} ${String(this.year)}`\n }\n\n override strftime(format: string): string {\n return strftime(format, this)\n }\n\n override toString(): string {\n return this.isoFormat(\" \")\n }\n\n override __add__(delta: timedelta): datetime {\n const totalMicroseconds =\n this.timestamp() * 1000000 + this.microsecond + delta.totalSeconds() * 1000000\n return datetime.fromTimestamp(totalMicroseconds / 1000000)\n }\n\n override __sub__(other: datetime | date | timedelta): datetime | timedelta {\n if (other instanceof timedelta) {\n const totalMicroseconds =\n this.timestamp() * 1000000 + this.microsecond - other.totalSeconds() * 1000000\n return datetime.fromTimestamp(totalMicroseconds / 1000000)\n }\n if (other instanceof datetime) {\n const diff = this.timestamp() - other.timestamp()\n const microDiff = this.microsecond - other.microsecond\n return new timedelta({ seconds: diff, microseconds: microDiff })\n }\n // other is a date\n const d1 = new Date(this.year, this.month - 1, this.day)\n const d2 = new Date(other.year, other.month - 1, other.day)\n const diffMs = d1.getTime() - d2.getTime()\n return new timedelta({ days: Math.floor(diffMs / (24 * 60 * 60 * 1000)) })\n }\n\n static override min = new datetime(1, 1, 1, 0, 0, 0, 0)\n static override max = new datetime(9999, 12, 31, 23, 59, 59, 999999)\n static override resolution = new timedelta({ microseconds: 1 })\n}\n\n// ============================================================================\n// strftime and strptime\n// ============================================================================\n\nconst WEEKDAY_NAMES = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"]\nconst WEEKDAY_ABBR = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"]\nconst MONTH_NAMES = [\n \"\",\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n]\nconst MONTH_ABBR = [\n \"\",\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n]\n\nexport function strftime(format: string, dt: datetime): string {\n const pad = (n: number, width: number = 2) => String(n).padStart(width, \"0\")\n\n return format.replace(/%([aAbBcdHIjmMpSUwWxXyYzZ%])/g, (_, code: string) => {\n switch (code) {\n case \"a\":\n return WEEKDAY_ABBR[dt.weekday()] ?? \"\"\n case \"A\":\n return WEEKDAY_NAMES[dt.weekday()] ?? \"\"\n case \"b\":\n return MONTH_ABBR[dt.month] ?? \"\"\n case \"B\":\n return MONTH_NAMES[dt.month] ?? \"\"\n case \"c\":\n return dt.ctime()\n case \"d\":\n return pad(dt.day)\n case \"H\":\n return pad(dt.hour)\n case \"I\":\n return pad(dt.hour % 12 || 12)\n case \"j\": {\n const start = new Date(dt.year, 0, 0)\n const diff = new Date(dt.year, dt.month - 1, dt.day).getTime() - start.getTime()\n const dayOfYear = Math.floor(diff / (24 * 60 * 60 * 1000))\n return pad(dayOfYear, 3)\n }\n case \"m\":\n return pad(dt.month)\n case \"M\":\n return pad(dt.minute)\n case \"p\":\n return dt.hour < 12 ? \"AM\" : \"PM\"\n case \"S\":\n return pad(dt.second)\n case \"U\": {\n // Week number (Sunday as first day)\n const start = new Date(dt.year, 0, 1)\n const diff = new Date(dt.year, dt.month - 1, dt.day).getTime() - start.getTime()\n const dayOfYear = Math.floor(diff / (24 * 60 * 60 * 1000))\n const firstSunday = (7 - start.getDay()) % 7\n return pad(Math.floor((dayOfYear - firstSunday + 7) / 7))\n }\n case \"w\":\n return String((dt.weekday() + 1) % 7)\n case \"W\": {\n // Week number (Monday as first day)\n const start = new Date(dt.year, 0, 1)\n const diff = new Date(dt.year, dt.month - 1, dt.day).getTime() - start.getTime()\n const dayOfYear = Math.floor(diff / (24 * 60 * 60 * 1000))\n const firstMonday = (8 - start.getDay()) % 7\n return pad(Math.floor((dayOfYear - firstMonday + 7) / 7))\n }\n case \"x\":\n return `${pad(dt.month)}/${pad(dt.day)}/${pad(dt.year % 100)}`\n case \"X\":\n return `${pad(dt.hour)}:${pad(dt.minute)}:${pad(dt.second)}`\n case \"y\":\n return pad(dt.year % 100)\n case \"Y\":\n return String(dt.year)\n case \"z\":\n return \"\" // No timezone info\n case \"Z\":\n return \"\" // No timezone name\n case \"%\":\n return \"%\"\n default:\n return `%${code}`\n }\n })\n}\n\nexport function strptime(dateString: string, format: string): datetime {\n let year = 1900,\n month = 1,\n day = 1,\n hour = 0,\n minute = 0,\n second = 0,\n microsecond = 0\n\n // Build regex from format\n let pos = 0\n let formatPos = 0\n\n while (formatPos < format.length) {\n if (format[formatPos] === \"%\") {\n formatPos++\n const code = format[formatPos]\n formatPos++\n\n switch (code) {\n case \"Y\": {\n const match = /^\\d{4}/.exec(dateString.slice(pos))\n if (!match) throw new Error(\"Invalid year\")\n year = parseInt(match[0])\n pos += 4\n break\n }\n case \"y\": {\n const match = /^\\d{2}/.exec(dateString.slice(pos))\n if (!match) throw new Error(\"Invalid year\")\n const y = parseInt(match[0])\n year = y >= 69 ? 1900 + y : 2000 + y\n pos += 2\n break\n }\n case \"m\": {\n const match = /^\\d{1,2}/.exec(dateString.slice(pos))\n if (!match) throw new Error(\"Invalid month\")\n month = parseInt(match[0])\n pos += match[0].length\n break\n }\n case \"d\": {\n const match = /^\\d{1,2}/.exec(dateString.slice(pos))\n if (!match) throw new Error(\"Invalid day\")\n day = parseInt(match[0])\n pos += match[0].length\n break\n }\n case \"H\": {\n const match = /^\\d{1,2}/.exec(dateString.slice(pos))\n if (!match) throw new Error(\"Invalid hour\")\n hour = parseInt(match[0])\n pos += match[0].length\n break\n }\n case \"M\": {\n const match = /^\\d{1,2}/.exec(dateString.slice(pos))\n if (!match) throw new Error(\"Invalid minute\")\n minute = parseInt(match[0])\n pos += match[0].length\n break\n }\n case \"S\": {\n const match = /^\\d{1,2}/.exec(dateString.slice(pos))\n if (!match) throw new Error(\"Invalid second\")\n second = parseInt(match[0])\n pos += match[0].length\n break\n }\n case \"f\": {\n const match = /^\\d{1,6}/.exec(dateString.slice(pos))\n if (!match) throw new Error(\"Invalid microsecond\")\n microsecond = parseInt(match[0].padEnd(6, \"0\"))\n pos += match[0].length\n break\n }\n case \"b\":\n case \"B\": {\n const names = code === \"b\" ? MONTH_ABBR : MONTH_NAMES\n let found = false\n for (let i = 1; i <= 12; i++) {\n const name = names[i]\n if (name && dateString.slice(pos).toLowerCase().startsWith(name.toLowerCase())) {\n month = i\n pos += name.length\n found = true\n break\n }\n }\n if (!found) throw new Error(\"Invalid month name\")\n break\n }\n /* v8 ignore start -- rare edge cases @preserve */\n case \"%\":\n if (dateString[pos] !== \"%\") throw new Error(\"Expected %\")\n pos++\n break\n default:\n // Skip unknown codes\n break\n /* v8 ignore stop */\n }\n } else {\n // Literal character\n const expectedChar = format[formatPos] ?? \"\"\n if (dateString[pos] !== expectedChar) {\n throw new Error(`Expected '${expectedChar}' at position ${String(pos)}`)\n }\n pos++\n formatPos++\n }\n }\n\n return new datetime(year, month, day, hour, minute, second, microsecond)\n}\n\n// ============================================================================\n// Module-level constants\n// ============================================================================\n\nexport const MINYEAR = 1\nexport const MAXYEAR = 9999\n"],"mappings":"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","names":[]}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Python collections module for TypeScript
|
|
3
3
|
*
|
|
4
4
|
* Provides specialized container datatypes.
|
|
5
|
+
*
|
|
6
|
+
* @see {@link https://docs.python.org/3/library/collections.html | Python collections documentation}
|
|
5
7
|
*/
|
|
6
8
|
/**
|
|
7
9
|
* Counter: a dict subclass for counting hashable objects
|
|
@@ -62,7 +64,7 @@ declare class deque<T> {
|
|
|
62
64
|
/**
|
|
63
65
|
* Add element to the left end
|
|
64
66
|
*/
|
|
65
|
-
|
|
67
|
+
appendLeft(x: T): void;
|
|
66
68
|
/**
|
|
67
69
|
* Remove and return element from the right end
|
|
68
70
|
*/
|
|
@@ -70,7 +72,7 @@ declare class deque<T> {
|
|
|
70
72
|
/**
|
|
71
73
|
* Remove and return element from the left end
|
|
72
74
|
*/
|
|
73
|
-
|
|
75
|
+
popLeft(): T | undefined;
|
|
74
76
|
/**
|
|
75
77
|
* Extend the right side with elements from iterable
|
|
76
78
|
*/
|
|
@@ -78,7 +80,7 @@ declare class deque<T> {
|
|
|
78
80
|
/**
|
|
79
81
|
* Extend the left side with elements from iterable
|
|
80
82
|
*/
|
|
81
|
-
|
|
83
|
+
extendLeft(iterable: Iterable<T>): void;
|
|
82
84
|
/**
|
|
83
85
|
* Rotate the deque n steps to the right (negative n rotates left)
|
|
84
86
|
*/
|
package/dist/collections.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as Counter, d as defaultdict, a as deque } from './collections-
|
|
1
|
+
export { C as Counter, d as defaultdict, a as deque } from './collections-CJur5Wg-.js';
|
package/dist/collections.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Python datetime module for TypeScript
|
|
3
3
|
*
|
|
4
4
|
* Provides date and time handling matching Python's datetime module.
|
|
5
|
+
*
|
|
6
|
+
* @see {@link https://docs.python.org/3/library/datetime.html | Python datetime documentation}
|
|
5
7
|
*/
|
|
6
8
|
declare class timedelta {
|
|
7
9
|
readonly days: number;
|
|
@@ -16,7 +18,7 @@ declare class timedelta {
|
|
|
16
18
|
hours?: number;
|
|
17
19
|
weeks?: number;
|
|
18
20
|
});
|
|
19
|
-
|
|
21
|
+
totalSeconds(): number;
|
|
20
22
|
toString(): string;
|
|
21
23
|
add(other: timedelta): timedelta;
|
|
22
24
|
subtract(other: timedelta): timedelta;
|
|
@@ -31,19 +33,19 @@ declare class date {
|
|
|
31
33
|
readonly day: number;
|
|
32
34
|
constructor(year: number, month: number, day: number);
|
|
33
35
|
static today(): date;
|
|
34
|
-
static
|
|
35
|
-
static
|
|
36
|
-
static
|
|
36
|
+
static fromTimestamp(timestamp: number): date;
|
|
37
|
+
static fromIsoFormat(dateString: string): date;
|
|
38
|
+
static fromOrdinal(ordinal: number): date;
|
|
37
39
|
replace(options?: {
|
|
38
40
|
year?: number;
|
|
39
41
|
month?: number;
|
|
40
42
|
day?: number;
|
|
41
43
|
}): date;
|
|
42
|
-
|
|
44
|
+
toOrdinal(): number;
|
|
43
45
|
weekday(): number;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
isoWeekday(): number;
|
|
47
|
+
isoCalendar(): [number, number, number];
|
|
48
|
+
isoFormat(): string;
|
|
47
49
|
strftime(format: string): string;
|
|
48
50
|
toString(): string;
|
|
49
51
|
__add__(delta: timedelta): date;
|
|
@@ -64,14 +66,14 @@ declare class time {
|
|
|
64
66
|
readonly microsecond: number;
|
|
65
67
|
readonly tzinfo: null;
|
|
66
68
|
constructor(hour?: number, minute?: number, second?: number, microsecond?: number);
|
|
67
|
-
static
|
|
69
|
+
static fromIsoFormat(timeString: string): time;
|
|
68
70
|
replace(options?: {
|
|
69
71
|
hour?: number;
|
|
70
72
|
minute?: number;
|
|
71
73
|
second?: number;
|
|
72
74
|
microsecond?: number;
|
|
73
75
|
}): time;
|
|
74
|
-
|
|
76
|
+
isoFormat(timespec?: "auto" | "hours" | "minutes" | "seconds" | "milliseconds" | "microseconds"): string;
|
|
75
77
|
strftime(format: string): string;
|
|
76
78
|
toString(): string;
|
|
77
79
|
static min: time;
|
|
@@ -87,10 +89,10 @@ declare class datetime extends date {
|
|
|
87
89
|
constructor(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, microsecond?: number);
|
|
88
90
|
static today(): datetime;
|
|
89
91
|
static now(): datetime;
|
|
90
|
-
static
|
|
91
|
-
static
|
|
92
|
-
static
|
|
93
|
-
static
|
|
92
|
+
static utcNow(): datetime;
|
|
93
|
+
static fromTimestamp(timestamp: number): datetime;
|
|
94
|
+
static utcfromTimestamp(timestamp: number): datetime;
|
|
95
|
+
static fromIsoFormat(s: string): datetime;
|
|
94
96
|
static combine(d: date, t: time): datetime;
|
|
95
97
|
static strptime(dateString: string, format: string): datetime;
|
|
96
98
|
replace(options?: {
|
|
@@ -105,7 +107,7 @@ declare class datetime extends date {
|
|
|
105
107
|
date(): date;
|
|
106
108
|
time(): time;
|
|
107
109
|
timestamp(): number;
|
|
108
|
-
|
|
110
|
+
isoFormat(sep?: string, timespec?: "auto" | "hours" | "minutes" | "seconds" | "milliseconds" | "microseconds"): string;
|
|
109
111
|
ctime(): string;
|
|
110
112
|
strftime(format: string): string;
|
|
111
113
|
toString(): string;
|
package/dist/datetime.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { f as MAXYEAR, M as MINYEAR, a as date, c as datetime, s as strftime, e as strptime, b as time, t as timedelta } from './datetime-
|
|
1
|
+
export { f as MAXYEAR, M as MINYEAR, a as date, c as datetime, s as strftime, e as strptime, b as time, t as timedelta } from './datetime-Bpce8gG2.js';
|
package/dist/datetime.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Python functools module for TypeScript
|
|
3
3
|
*
|
|
4
4
|
* Provides higher-order functions and operations on callable objects.
|
|
5
|
+
*
|
|
6
|
+
* @see {@link https://docs.python.org/3/library/functools.html | Python functools documentation}
|
|
5
7
|
*/
|
|
6
8
|
/**
|
|
7
9
|
* Create a partial function application
|
|
@@ -24,16 +26,16 @@ declare function reduce<T, U = T>(func: (acc: U, val: T) => U, iterable: Iterabl
|
|
|
24
26
|
* Note: This is a simplified implementation that caches based on JSON-stringified arguments
|
|
25
27
|
*
|
|
26
28
|
* Example:
|
|
27
|
-
* const fib =
|
|
29
|
+
* const fib = lruCache((n: number): number => n <= 1 ? n : fib(n - 1) + fib(n - 2))
|
|
28
30
|
*/
|
|
29
|
-
declare function
|
|
30
|
-
|
|
31
|
+
declare function lruCache<T extends (...args: unknown[]) => unknown>(func: T, maxsize?: number): T & {
|
|
32
|
+
cacheInfo: () => {
|
|
31
33
|
hits: number;
|
|
32
34
|
misses: number;
|
|
33
35
|
maxsize: number;
|
|
34
36
|
currsize: number;
|
|
35
37
|
};
|
|
36
|
-
|
|
38
|
+
cacheClear: () => void;
|
|
37
39
|
};
|
|
38
40
|
/**
|
|
39
41
|
* Cache decorator that caches all calls (no size limit)
|
|
@@ -44,12 +46,12 @@ declare function cache<T extends (...args: unknown[]) => unknown>(func: T): T;
|
|
|
44
46
|
* Return a new partial object which behaves like func called with keyword arguments
|
|
45
47
|
* In TypeScript, we simulate this with an options object as the last argument
|
|
46
48
|
*/
|
|
47
|
-
declare function
|
|
49
|
+
declare function partialMethod<T extends (...args: unknown[]) => unknown>(func: T, ...partialArgs: unknown[]): (...args: unknown[]) => ReturnType<T>;
|
|
48
50
|
/**
|
|
49
51
|
* Transform a function into a single-dispatch generic function
|
|
50
|
-
* This is a simplified version - full
|
|
52
|
+
* This is a simplified version - full singleDispatch would require runtime type checking
|
|
51
53
|
*/
|
|
52
|
-
declare function
|
|
54
|
+
declare function singleDispatch<T extends (...args: unknown[]) => unknown>(func: T): T & {
|
|
53
55
|
register: (type: string, impl: T) => void;
|
|
54
56
|
};
|
|
55
57
|
/**
|
|
@@ -59,20 +61,20 @@ declare function singledispatch<T extends (...args: unknown[]) => unknown>(func:
|
|
|
59
61
|
declare function wraps<T extends (...args: unknown[]) => unknown>(wrapped: T): (wrapper: (...args: unknown[]) => unknown) => T;
|
|
60
62
|
/**
|
|
61
63
|
* Return a callable object that fetches attr from its operand
|
|
62
|
-
*
|
|
64
|
+
* attrGetter('name') returns a function that gets the 'name' attribute
|
|
63
65
|
*/
|
|
64
|
-
declare function
|
|
66
|
+
declare function attrGetter<T>(...attrs: string[]): (obj: unknown) => T | T[];
|
|
65
67
|
/**
|
|
66
68
|
* Return a callable object that fetches item from its operand
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
+
* itemGetter(1) returns a function that gets index 1
|
|
70
|
+
* itemGetter('key') returns a function that gets the 'key' property
|
|
69
71
|
*/
|
|
70
|
-
declare function
|
|
72
|
+
declare function itemGetter<T>(...items: (string | number)[]): (obj: unknown) => T | T[];
|
|
71
73
|
/**
|
|
72
74
|
* Return a callable object that calls the method name on its operand
|
|
73
|
-
*
|
|
75
|
+
* methodCaller('split', ' ') returns a function that calls .split(' ')
|
|
74
76
|
*/
|
|
75
|
-
declare function
|
|
77
|
+
declare function methodCaller(name: string, ...args: unknown[]): (obj: unknown) => unknown;
|
|
76
78
|
/**
|
|
77
79
|
* Return the same object passed in (identity function)
|
|
78
80
|
*/
|
|
@@ -81,7 +83,7 @@ declare function identity<T>(x: T): T;
|
|
|
81
83
|
* Compare two objects for ordering (returns -1, 0, or 1)
|
|
82
84
|
* Used for sorting with a key function
|
|
83
85
|
*/
|
|
84
|
-
declare function
|
|
86
|
+
declare function cmpToKey<T>(mycmp: (a: T, b: T) => number): (x: T) => {
|
|
85
87
|
value: T;
|
|
86
88
|
__lt__: (other: {
|
|
87
89
|
value: T;
|
|
@@ -92,7 +94,7 @@ declare function cmp_to_key<T>(mycmp: (a: T, b: T) => number): (x: T) => {
|
|
|
92
94
|
* This is typically used as a class decorator in Python
|
|
93
95
|
* In TypeScript, we provide helper comparisons
|
|
94
96
|
*/
|
|
95
|
-
declare function
|
|
97
|
+
declare function totalOrdering<T extends {
|
|
96
98
|
__lt__?: (other: T) => boolean;
|
|
97
99
|
__le__?: (other: T) => boolean;
|
|
98
100
|
__gt__?: (other: T) => boolean;
|
|
@@ -104,22 +106,36 @@ declare function total_ordering<T extends {
|
|
|
104
106
|
__gt__: (other: T) => boolean;
|
|
105
107
|
__ge__: (other: T) => boolean;
|
|
106
108
|
};
|
|
109
|
+
/**
|
|
110
|
+
* Pipe a value through a series of functions.
|
|
111
|
+
* @inspired Remeda, Ramda
|
|
112
|
+
*
|
|
113
|
+
* Example:
|
|
114
|
+
* pipe(5, x => x * 2, x => x + 1) // returns 11
|
|
115
|
+
*/
|
|
116
|
+
declare function pipe<T>(value: T): T;
|
|
117
|
+
declare function pipe<T, A>(value: T, fn1: (x: T) => A): A;
|
|
118
|
+
declare function pipe<T, A, B>(value: T, fn1: (x: T) => A, fn2: (x: A) => B): B;
|
|
119
|
+
declare function pipe<T, A, B, C>(value: T, fn1: (x: T) => A, fn2: (x: A) => B, fn3: (x: B) => C): C;
|
|
120
|
+
declare function pipe<T, A, B, C, D>(value: T, fn1: (x: T) => A, fn2: (x: A) => B, fn3: (x: B) => C, fn4: (x: C) => D): D;
|
|
121
|
+
declare function pipe<T, A, B, C, D, E>(value: T, fn1: (x: T) => A, fn2: (x: A) => B, fn3: (x: B) => C, fn4: (x: C) => D, fn5: (x: D) => E): E;
|
|
107
122
|
|
|
108
|
-
declare const
|
|
123
|
+
declare const functoolsModule_attrGetter: typeof attrGetter;
|
|
109
124
|
declare const functoolsModule_cache: typeof cache;
|
|
110
|
-
declare const
|
|
125
|
+
declare const functoolsModule_cmpToKey: typeof cmpToKey;
|
|
111
126
|
declare const functoolsModule_identity: typeof identity;
|
|
112
|
-
declare const
|
|
113
|
-
declare const
|
|
114
|
-
declare const
|
|
127
|
+
declare const functoolsModule_itemGetter: typeof itemGetter;
|
|
128
|
+
declare const functoolsModule_lruCache: typeof lruCache;
|
|
129
|
+
declare const functoolsModule_methodCaller: typeof methodCaller;
|
|
115
130
|
declare const functoolsModule_partial: typeof partial;
|
|
116
|
-
declare const
|
|
131
|
+
declare const functoolsModule_partialMethod: typeof partialMethod;
|
|
132
|
+
declare const functoolsModule_pipe: typeof pipe;
|
|
117
133
|
declare const functoolsModule_reduce: typeof reduce;
|
|
118
|
-
declare const
|
|
119
|
-
declare const
|
|
134
|
+
declare const functoolsModule_singleDispatch: typeof singleDispatch;
|
|
135
|
+
declare const functoolsModule_totalOrdering: typeof totalOrdering;
|
|
120
136
|
declare const functoolsModule_wraps: typeof wraps;
|
|
121
137
|
declare namespace functoolsModule {
|
|
122
|
-
export {
|
|
138
|
+
export { functoolsModule_attrGetter as attrGetter, functoolsModule_cache as cache, functoolsModule_cmpToKey as cmpToKey, functoolsModule_identity as identity, functoolsModule_itemGetter as itemGetter, functoolsModule_lruCache as lruCache, functoolsModule_methodCaller as methodCaller, functoolsModule_partial as partial, functoolsModule_partialMethod as partialMethod, functoolsModule_pipe as pipe, functoolsModule_reduce as reduce, functoolsModule_singleDispatch as singleDispatch, functoolsModule_totalOrdering as totalOrdering, functoolsModule_wraps as wraps };
|
|
123
139
|
}
|
|
124
140
|
|
|
125
|
-
export {
|
|
141
|
+
export { partialMethod as a, attrGetter as b, cache as c, identity as d, cmpToKey as e, functoolsModule as f, pipe as g, itemGetter as i, lruCache as l, methodCaller as m, partial as p, reduce as r, singleDispatch as s, totalOrdering as t, wraps as w };
|
package/dist/functools.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { b as
|
|
1
|
+
export { b as attrGetter, c as cache, e as cmpToKey, d as identity, i as itemGetter, l as lruCache, m as methodCaller, p as partial, a as partialMethod, g as pipe, r as reduce, s as singleDispatch, t as totalOrdering, w as wraps } from './functools-NrsZAqJk.js';
|