PKDevTools 0.13.20250214.234__cp312-cp312-manylinux2014_x86_64.whl → 0.13.20250218.236__cp312-cp312-manylinux2014_x86_64.whl
Sign up to get free protection for your applications and to get access to all the features.
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/DBManager.py +122 -3
- PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/__init__.py +1 -0
- {PKDevTools-0.13.20250214.234.dist-info → PKDevTools-0.13.20250218.236.dist-info}/METADATA +2 -2
- PKDevTools-0.13.20250218.236.dist-info/RECORD +48 -0
- PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/__init__.py +0 -1
- PKDevTools-0.13.20250214.234.dist-info/RECORD +0 -48
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/LICENSE.txt +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/README.txt +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/__init__.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/Archiver.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/ColorText.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/Committer.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/CookieHelper.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/Environment.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/Fetcher.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/FunctionTimeouts.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/GmailReader.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/MarketHours.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/MenuOptions.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/NSEMarketStatus.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/OutputControls.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/PKDateUtilities.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/PKGitFolderDownloader.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/PKJoinableQueue.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/PKMultiProcessorClient.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/PKPickler.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/PKTimer.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/Pikey.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/Singleton.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/SuppressOutput.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/System.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/Telegram.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/UserSubscriptions.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/Utils.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/WorkflowManager.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/githubutilities.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/log.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/multiprocessing_logging.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/pubsub/__init__.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/pubsub/events.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/pubsub/publisher.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/pubsub/subscriber.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/squash.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/classes/updater.py +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/release.md +0 -0
- {PKDevTools-0.13.20250214.234.data → PKDevTools-0.13.20250218.236.data}/purelib/PKDevTools/requirements.txt +0 -0
- {PKDevTools-0.13.20250214.234.dist-info → PKDevTools-0.13.20250218.236.dist-info}/LICENSE +0 -0
- {PKDevTools-0.13.20250214.234.dist-info → PKDevTools-0.13.20250218.236.dist-info}/WHEEL +0 -0
- {PKDevTools-0.13.20250214.234.dist-info → PKDevTools-0.13.20250218.236.dist-info}/entry_points.txt +0 -0
- {PKDevTools-0.13.20250214.234.dist-info → PKDevTools-0.13.20250218.236.dist-info}/top_level.txt +0 -0
@@ -88,7 +88,14 @@ class PKUser:
|
|
88
88
|
user.subscriptionmodel= row[7] if len(row) > 7 else None
|
89
89
|
user.lastotp= row[8] if len(row) > 8 else None
|
90
90
|
return user
|
91
|
-
|
91
|
+
|
92
|
+
def payingUserFromDBRecord(row):
|
93
|
+
user = PKUser()
|
94
|
+
user.userid= row[0] if len(row) > 0 else None
|
95
|
+
user.subscriptionmodel = row[1] if len(row) > 1 else None
|
96
|
+
user.balance= row[2] if len(row) > 2 else None
|
97
|
+
return user
|
98
|
+
|
92
99
|
def userFromAlertsRecord(row,user=None):
|
93
100
|
if user is None:
|
94
101
|
user = PKUser()
|
@@ -338,7 +345,7 @@ class DBManager:
|
|
338
345
|
self.conn.close()
|
339
346
|
self.conn = None
|
340
347
|
|
341
|
-
def getUsers(self,fieldName=None):
|
348
|
+
def getUsers(self,fieldName=None,where=None):
|
342
349
|
"""
|
343
350
|
Returns all active PKUser instances in the database or an empty list if none is found.
|
344
351
|
Returns only the fieldName if requested.
|
@@ -346,7 +353,7 @@ class DBManager:
|
|
346
353
|
try:
|
347
354
|
users = []
|
348
355
|
cursor = self.connection() #.cursor()
|
349
|
-
records = cursor.execute(f"SELECT {'*' if fieldName is None else fieldName} FROM users") #.fetchall()
|
356
|
+
records = cursor.execute(f"SELECT {'*' if fieldName is None else fieldName} FROM users {where if where is not None else ''}") #.fetchall()
|
350
357
|
for row in records.rows:
|
351
358
|
users.append(PKUser.userFromDBRecord(row))
|
352
359
|
# cursor.close()
|
@@ -555,3 +562,115 @@ class DBManager:
|
|
555
562
|
self.conn.close()
|
556
563
|
self.conn = None
|
557
564
|
return success1 and success2
|
565
|
+
|
566
|
+
def removeScannerJob(self,userID, scanId):
|
567
|
+
"""
|
568
|
+
Removes scanId from scannerJobs column in alertsubscriptions
|
569
|
+
|
570
|
+
Removes userID from the users column in scannerJobs
|
571
|
+
|
572
|
+
Deletes the row in scannerJobs if no more userIds are left
|
573
|
+
"""
|
574
|
+
try:
|
575
|
+
success = False
|
576
|
+
# Step 1: Remove job from user's alertsubscriptions table
|
577
|
+
query_alertsubscriptions = """
|
578
|
+
UPDATE alertsubscriptions
|
579
|
+
SET scannerJobs =
|
580
|
+
CASE
|
581
|
+
WHEN scannerJobs = ? THEN '' -- If the only job, set to empty string
|
582
|
+
ELSE
|
583
|
+
TRIM(
|
584
|
+
REPLACE(
|
585
|
+
REPLACE(
|
586
|
+
';' || scannerJobs || ';', -- Add extra delimiters to prevent partial replacements
|
587
|
+
';' || ? || ';',
|
588
|
+
';'
|
589
|
+
),
|
590
|
+
';;', ';' -- Fix extra semicolons
|
591
|
+
),
|
592
|
+
';'
|
593
|
+
) -- Trim leading/trailing semicolon
|
594
|
+
END
|
595
|
+
WHERE userId = ?;
|
596
|
+
"""
|
597
|
+
result = self.connection().execute(query_alertsubscriptions, (scanId,scanId,userID))
|
598
|
+
if result.rows_affected > 0:
|
599
|
+
default_logger().debug(f"User: {userID} removed {scanId} from alertsubscriptions!")
|
600
|
+
success = True
|
601
|
+
if success:
|
602
|
+
# Step 2: Remove userId from scannerJobs table
|
603
|
+
query_scanner_jobs = """
|
604
|
+
UPDATE scannerJobs
|
605
|
+
SET users =
|
606
|
+
CASE
|
607
|
+
WHEN users = ? THEN '' -- If the only user, set to empty string
|
608
|
+
ELSE
|
609
|
+
TRIM(
|
610
|
+
REPLACE(
|
611
|
+
REPLACE(
|
612
|
+
';' || users || ';',
|
613
|
+
';' || ? || ';',
|
614
|
+
';'
|
615
|
+
),
|
616
|
+
';;', ';'
|
617
|
+
),
|
618
|
+
';'
|
619
|
+
) -- Trim leading/trailing semicolon
|
620
|
+
END
|
621
|
+
WHERE scannerId = ?;
|
622
|
+
"""
|
623
|
+
result = self.connection().execute(query_scanner_jobs, (str(userID),str(userID),scanId))
|
624
|
+
if result.rows_affected > 0:
|
625
|
+
default_logger().debug(f"User: {userID} removed {scanId} from scannerJobs!")
|
626
|
+
success = True
|
627
|
+
if success:
|
628
|
+
# Step 3: Delete row from scannerJobs if users column is empty
|
629
|
+
query_delete_empty = """
|
630
|
+
DELETE FROM scannerJobs WHERE scannerId = ? AND (users IS NULL OR users = '');
|
631
|
+
"""
|
632
|
+
result = self.connection().execute(query_delete_empty, (scanId,))
|
633
|
+
if result.rows_affected > 0:
|
634
|
+
default_logger().debug(f"{scanId} deleted from scannerJobs by User: {userID} !")
|
635
|
+
success = True
|
636
|
+
except Exception as e: # pragma: no cover
|
637
|
+
print(f"Could not removeScannerJob: {scanId} for UserID: {userID}\n{e}")
|
638
|
+
default_logger().debug(e, exc_info=True)
|
639
|
+
pass
|
640
|
+
finally:
|
641
|
+
if self.conn is not None:
|
642
|
+
self.conn.close()
|
643
|
+
self.conn = None
|
644
|
+
return success
|
645
|
+
|
646
|
+
def getPayingUsers(self):
|
647
|
+
"""
|
648
|
+
Returns all active PKUser instances in the database who either have a subscription model
|
649
|
+
or have a alerts balance.
|
650
|
+
"""
|
651
|
+
try:
|
652
|
+
users = []
|
653
|
+
cursor = self.connection() #.cursor()
|
654
|
+
query_paying_users = """
|
655
|
+
SELECT DISTINCT u.userId, u.subscriptionmodel, a.balance
|
656
|
+
FROM users u
|
657
|
+
LEFT JOIN alertsubscriptions a ON u.userId = a.userId
|
658
|
+
WHERE COALESCE(a.balance, 0) > 0 OR (u.subscriptionmodel != '' and u.subscriptionmodel != '0');
|
659
|
+
|
660
|
+
"""
|
661
|
+
records = cursor.execute(query_paying_users)
|
662
|
+
for row in records.rows:
|
663
|
+
users.append(PKUser.payingUserFromDBRecord(row))
|
664
|
+
# cursor.close()
|
665
|
+
if len(records.columns) > 0 and len(records.rows) <= 0:
|
666
|
+
# Let's tell the user
|
667
|
+
default_logger().debug(f"Paying Users not found!")
|
668
|
+
except Exception as e: # pragma: no cover
|
669
|
+
print(f"Could not getPayingUsers\n{e}")
|
670
|
+
default_logger().debug(e, exc_info=True)
|
671
|
+
pass
|
672
|
+
finally:
|
673
|
+
if self.conn is not None:
|
674
|
+
self.conn.close()
|
675
|
+
self.conn = None
|
676
|
+
return users
|
@@ -0,0 +1 @@
|
|
1
|
+
VERSION='0.13.20250218.236'
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: PKDevTools
|
3
|
-
Version: 0.13.
|
3
|
+
Version: 0.13.20250218.236
|
4
4
|
Summary: A general day-to-day toolset for PKScreener repos
|
5
5
|
Home-page: https://github.com/pkjmesra/PKDevTools
|
6
|
-
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.
|
6
|
+
Download-URL: https://github.com/pkjmesra/PKDevTools/archive/v0.13.20250218.236.zip
|
7
7
|
Author: pkjmesra
|
8
8
|
Author-email: pkjmesra@gmail.com
|
9
9
|
License: OSI Approved (MIT)
|
@@ -0,0 +1,48 @@
|
|
1
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/LICENSE.txt,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
|
2
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/README.txt,sha256=xw2oGRJ1M9lmJqEYw3VBh7ZjlNx7hIZw6fcDzC0shu8,4233
|
3
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
|
4
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/release.md,sha256=NcfNPeUU9uaz8mRiRZRqPWkSpwoHVShdrXJqOJdKbnQ,1729
|
5
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/requirements.txt,sha256=9jmqyzA5fSuYakmU3g3jNrUvSc7sM0tTKt4z9yVGNTw,369
|
6
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Archiver.py,sha256=0D2wMp3a913QOsPXc0K_frtvpldDU7uIsP8DRAvaIQ0,6301
|
7
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/ColorText.py,sha256=sIsXd75jMtA44mdZQd6EO1MdFYQaH2IYukLEH9fZuEw,8585
|
8
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Committer.py,sha256=cHsIe9DonzQULOZwrXGuodatFSDNm5UiQafjVlWn-BE,4536
|
9
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=PxW1_VanZ7AY7o7jMYxISBj9yhs69L0Sd8wvXYCRXAo,6212
|
10
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/DBManager.py,sha256=RQCDrZE0hfWz_mtnunqqntpzNAkqxvpk_5G9qPidqJ0,30642
|
11
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Environment.py,sha256=hvQwkjz9QunX0-3Dcuw5E76fjaejmHvrmiAOME9TqE4,1978
|
12
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Fetcher.py,sha256=W-yCSSujFie58lYAZ4HVo1gZey9R3Qpe3JL16F-eo9I,9011
|
13
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=xbxp-txDqiQOzVjazbrEPITMGvUIXQ0HqfFh8vYr4WU,2541
|
14
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/GmailReader.py,sha256=brgcUCfk-8DApUWuqgqIVp5sC5G_pq7iONEPV3kYbCw,7426
|
15
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/MarketHours.py,sha256=2aRzd8JfCmxc3UryvrpUS7DvHuctpz_U-E0nv72gEaY,2159
|
16
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=MC_OblDzSMCENVEZCQQX4whmY3vQAhE2oBZOL69JzyA,11606
|
17
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=fpWLKod5HxgJIilu1G5a7FcSwmuGq1DmwBx2k-MDHs0,5552
|
18
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/OutputControls.py,sha256=cXI8l2ZIJAZbTbVbG7wu7iNgMBFfs51XapCS27lNjmU,3472
|
19
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=QIjCGyTMkax5mv0qGC9gjLxaz4zTFX2oRqDhXAbQ8Gk,17873
|
20
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=RM7ZQCERKl_ttlAoo5Nt9FKuWWUirQxCxL1thZ12_hE,2936
|
21
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=8eWkWiOaqGCAegV30-bgpPsfmhVVpuxLHdyrJNY3_OY,5122
|
22
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=Y5t_f14z6ygzPUHDH6YJIqLrm9s7TFk5ayLxK8MeTgw,13214
|
23
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKPickler.py,sha256=M2F2_Z7XAmo7qfzOEiVLq3RzpldfU8Y-MfMPrMZbNGU,14082
|
24
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/PKTimer.py,sha256=Y0jmvrXKLkwNH3j5qIwpL_th-Nf26oCHnxsZ7_AuV8U,3345
|
25
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Pikey.py,sha256=wDiOUIRSxYOIO7GGUw1eGrbDuVvJ-YAU6_dfQWRp2Fk,2744
|
26
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Singleton.py,sha256=tBIFCgVKqs5-K6w_wx0FNNT5aks1QmOLjE_xTMHbb10,4432
|
27
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=yAsdxsVJCbVi-irsxa_ClY7JutbRU_eAEMhw4NW4QdE,1951
|
28
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/System.py,sha256=tMNnGUQdhUjkysJ2b9EI8dy8iXdaHkshRXpeKZlyPf8,4005
|
29
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Telegram.py,sha256=_BnnsgUZL1pYZdcJensbUcvW6bi_tqvt6miTQf6OCY8,15505
|
30
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=P52b-a-UzFWKpQsT4zQFyfKcXhAZS6uyQ2yeIUqHWeQ,11067
|
31
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/Utils.py,sha256=P_kJnTgMK6fA6SwIvNLThvHxYVcazhD5Zo5WL_kpC3Y,24264
|
32
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=rDamQR0fF-YSzOQTjMJnksJ6dxKs-PazW6fVFlAQ_Sk,9759
|
33
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/__init__.py,sha256=DpzW3Iz2oAF9dbp-LZmWra4eBwu2dxX-4AgKLGWV9zE,28
|
34
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/githubutilities.py,sha256=UNSJzx8Ybn_x6zaSk497KQsMyDX7MYnQjjV-F0KP_Z0,3650
|
35
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/log.py,sha256=r-KBSGYXJ67Uzw51cNisB3x3uB5mlQWSOO_E6c_m1F8,15616
|
36
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=8W4fHL1Kstp2FIML6N6ghT--8HE4bmak3sZ1fsWF52U,7212
|
37
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/squash.py,sha256=iZ4MsOW_evD4VoWjO9pEHd2gWeswthM7uWSgVRpFvDw,2782
|
38
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/updater.py,sha256=NQ46ulqswdXkjljFwPiwufgGoCZB-Fc7DdYYh9LyS-0,4709
|
39
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
|
40
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/events.py,sha256=hjkGmZF51WmR9dQ81vZPAoiVuCKGwNABvYbcFKB3FKA,1236
|
41
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/publisher.py,sha256=08wlR55GRCtLAt4uSuz78XqS6_2O70FGTFJmnvOFnko,1513
|
42
|
+
PKDevTools-0.13.20250218.236.data/purelib/PKDevTools/classes/pubsub/subscriber.py,sha256=ucDZbJal3iUzEfiA6UlcZIOKVtN5YvYRISiqWJ4753w,2407
|
43
|
+
PKDevTools-0.13.20250218.236.dist-info/LICENSE,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
|
44
|
+
PKDevTools-0.13.20250218.236.dist-info/METADATA,sha256=ZAvo-RJag4ic-9On1kOx5e8rfUNtBIyFbRX55YAzI8M,6004
|
45
|
+
PKDevTools-0.13.20250218.236.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
|
46
|
+
PKDevTools-0.13.20250218.236.dist-info/entry_points.txt,sha256=itdAnPuy8DO45uGuAEms0UJcoa2nGJVAUwm7NIL4-Yw,353
|
47
|
+
PKDevTools-0.13.20250218.236.dist-info/top_level.txt,sha256=WTig-LzPiEcyuyhbNRhJz1mX_RB-fojodPK48k3NmPg,11
|
48
|
+
PKDevTools-0.13.20250218.236.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
VERSION='0.13.20250214.234'
|
@@ -1,48 +0,0 @@
|
|
1
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/LICENSE.txt,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
|
2
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/README.txt,sha256=xw2oGRJ1M9lmJqEYw3VBh7ZjlNx7hIZw6fcDzC0shu8,4233
|
3
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
|
4
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/release.md,sha256=NcfNPeUU9uaz8mRiRZRqPWkSpwoHVShdrXJqOJdKbnQ,1729
|
5
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/requirements.txt,sha256=9jmqyzA5fSuYakmU3g3jNrUvSc7sM0tTKt4z9yVGNTw,369
|
6
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/Archiver.py,sha256=0D2wMp3a913QOsPXc0K_frtvpldDU7uIsP8DRAvaIQ0,6301
|
7
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/ColorText.py,sha256=sIsXd75jMtA44mdZQd6EO1MdFYQaH2IYukLEH9fZuEw,8585
|
8
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/Committer.py,sha256=cHsIe9DonzQULOZwrXGuodatFSDNm5UiQafjVlWn-BE,4536
|
9
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/CookieHelper.py,sha256=PxW1_VanZ7AY7o7jMYxISBj9yhs69L0Sd8wvXYCRXAo,6212
|
10
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/DBManager.py,sha256=aAkRZWvU6q8ngLuffy7jY4s9XCvpipjziH2qy6iiz3Y,25301
|
11
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/Environment.py,sha256=hvQwkjz9QunX0-3Dcuw5E76fjaejmHvrmiAOME9TqE4,1978
|
12
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/Fetcher.py,sha256=W-yCSSujFie58lYAZ4HVo1gZey9R3Qpe3JL16F-eo9I,9011
|
13
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/FunctionTimeouts.py,sha256=xbxp-txDqiQOzVjazbrEPITMGvUIXQ0HqfFh8vYr4WU,2541
|
14
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/GmailReader.py,sha256=brgcUCfk-8DApUWuqgqIVp5sC5G_pq7iONEPV3kYbCw,7426
|
15
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/MarketHours.py,sha256=2aRzd8JfCmxc3UryvrpUS7DvHuctpz_U-E0nv72gEaY,2159
|
16
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/MenuOptions.py,sha256=MC_OblDzSMCENVEZCQQX4whmY3vQAhE2oBZOL69JzyA,11606
|
17
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/NSEMarketStatus.py,sha256=fpWLKod5HxgJIilu1G5a7FcSwmuGq1DmwBx2k-MDHs0,5552
|
18
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/OutputControls.py,sha256=cXI8l2ZIJAZbTbVbG7wu7iNgMBFfs51XapCS27lNjmU,3472
|
19
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/PKDateUtilities.py,sha256=QIjCGyTMkax5mv0qGC9gjLxaz4zTFX2oRqDhXAbQ8Gk,17873
|
20
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/PKGitFolderDownloader.py,sha256=RM7ZQCERKl_ttlAoo5Nt9FKuWWUirQxCxL1thZ12_hE,2936
|
21
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/PKJoinableQueue.py,sha256=8eWkWiOaqGCAegV30-bgpPsfmhVVpuxLHdyrJNY3_OY,5122
|
22
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/PKMultiProcessorClient.py,sha256=Y5t_f14z6ygzPUHDH6YJIqLrm9s7TFk5ayLxK8MeTgw,13214
|
23
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/PKPickler.py,sha256=M2F2_Z7XAmo7qfzOEiVLq3RzpldfU8Y-MfMPrMZbNGU,14082
|
24
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/PKTimer.py,sha256=Y0jmvrXKLkwNH3j5qIwpL_th-Nf26oCHnxsZ7_AuV8U,3345
|
25
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/Pikey.py,sha256=wDiOUIRSxYOIO7GGUw1eGrbDuVvJ-YAU6_dfQWRp2Fk,2744
|
26
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/Singleton.py,sha256=tBIFCgVKqs5-K6w_wx0FNNT5aks1QmOLjE_xTMHbb10,4432
|
27
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/SuppressOutput.py,sha256=yAsdxsVJCbVi-irsxa_ClY7JutbRU_eAEMhw4NW4QdE,1951
|
28
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/System.py,sha256=tMNnGUQdhUjkysJ2b9EI8dy8iXdaHkshRXpeKZlyPf8,4005
|
29
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/Telegram.py,sha256=_BnnsgUZL1pYZdcJensbUcvW6bi_tqvt6miTQf6OCY8,15505
|
30
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/UserSubscriptions.py,sha256=P52b-a-UzFWKpQsT4zQFyfKcXhAZS6uyQ2yeIUqHWeQ,11067
|
31
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/Utils.py,sha256=P_kJnTgMK6fA6SwIvNLThvHxYVcazhD5Zo5WL_kpC3Y,24264
|
32
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/WorkflowManager.py,sha256=rDamQR0fF-YSzOQTjMJnksJ6dxKs-PazW6fVFlAQ_Sk,9759
|
33
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/__init__.py,sha256=j_LpS1WuZSxHWhLlpkBTMGWisE_BZAPAjGtiZ3ZrH-Y,28
|
34
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/githubutilities.py,sha256=UNSJzx8Ybn_x6zaSk497KQsMyDX7MYnQjjV-F0KP_Z0,3650
|
35
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/log.py,sha256=r-KBSGYXJ67Uzw51cNisB3x3uB5mlQWSOO_E6c_m1F8,15616
|
36
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/multiprocessing_logging.py,sha256=8W4fHL1Kstp2FIML6N6ghT--8HE4bmak3sZ1fsWF52U,7212
|
37
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/squash.py,sha256=iZ4MsOW_evD4VoWjO9pEHd2gWeswthM7uWSgVRpFvDw,2782
|
38
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/updater.py,sha256=NQ46ulqswdXkjljFwPiwufgGoCZB-Fc7DdYYh9LyS-0,4709
|
39
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/pubsub/__init__.py,sha256=QyaxuW4OGDxF6KXLC5avvZyLhfMt9KnKAb4m9j1XUls,1152
|
40
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/pubsub/events.py,sha256=hjkGmZF51WmR9dQ81vZPAoiVuCKGwNABvYbcFKB3FKA,1236
|
41
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/pubsub/publisher.py,sha256=08wlR55GRCtLAt4uSuz78XqS6_2O70FGTFJmnvOFnko,1513
|
42
|
-
PKDevTools-0.13.20250214.234.data/purelib/PKDevTools/classes/pubsub/subscriber.py,sha256=ucDZbJal3iUzEfiA6UlcZIOKVtN5YvYRISiqWJ4753w,2407
|
43
|
-
PKDevTools-0.13.20250214.234.dist-info/LICENSE,sha256=5kDneOnQ4s9IktVsbcPcs6o0GhW7Rw_ySDac6TA2Cw4,1065
|
44
|
-
PKDevTools-0.13.20250214.234.dist-info/METADATA,sha256=GKGspCXELP-ebxKwmrBi6cQZhKVJn_cWcu2MKBoSUjI,6004
|
45
|
-
PKDevTools-0.13.20250214.234.dist-info/WHEEL,sha256=aDUArjEbIuDQzblE24IvdIsBzRhJEjiXmuNUYQ-gpaA,104
|
46
|
-
PKDevTools-0.13.20250214.234.dist-info/entry_points.txt,sha256=itdAnPuy8DO45uGuAEms0UJcoa2nGJVAUwm7NIL4-Yw,353
|
47
|
-
PKDevTools-0.13.20250214.234.dist-info/top_level.txt,sha256=WTig-LzPiEcyuyhbNRhJz1mX_RB-fojodPK48k3NmPg,11
|
48
|
-
PKDevTools-0.13.20250214.234.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{PKDevTools-0.13.20250214.234.dist-info → PKDevTools-0.13.20250218.236.dist-info}/entry_points.txt
RENAMED
File without changes
|
{PKDevTools-0.13.20250214.234.dist-info → PKDevTools-0.13.20250218.236.dist-info}/top_level.txt
RENAMED
File without changes
|