atsfill 0.0.8.dev229__tar.gz → 0.0.8.dev231__tar.gz
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.
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/PKG-INFO +4 -4
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/pyproject.toml +9 -9
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/pyproject.toml.orig +9 -9
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/commands.py +2 -2
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/LICENSE +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/README.md +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/__init__.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/__init__.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/adp.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/adpmyjobs.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/ashby.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/bamboohr.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/breezy.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/dayforce.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/eightfold.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/greenhouse.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/gupy.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/hireology.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/hiringthing.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/hrmdirect.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/isolvedhire.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/jazzhr.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/jobaffinity.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/jobstreet.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/join.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/lever.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/manatal.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/oracle.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/paycor.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/paylocity.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/personio.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/phenom.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/pinpoint.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/recruitee.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/recruiterflow.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/rippling.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/smartrecruiters.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/successfactors.js +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/successfactors.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/taleo.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/teamtailor.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/ukg.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/welcomekit.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/wellfound.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/werecruit.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/workable.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/workatastartup.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/workday.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/wttj.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/adapters/zohorecruit.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/cli.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/__init__.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/accounts.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/adapter.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/attempts.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/browser.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/conditions.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/countries.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/html.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/matching.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/otp.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/passwords.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/paths.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/registry.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/results.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/snapshot.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/core/telemetry.py +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/py.typed +0 -0
- {atsfill-0.0.8.dev229 → atsfill-0.0.8.dev231}/src/atsfill/registry.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atsfill
|
|
3
|
-
Version: 0.0.8.
|
|
3
|
+
Version: 0.0.8.dev231
|
|
4
4
|
Summary: Read, dry-run and submit job application forms on hiring systems: Ashby, Greenhouse, Teamtailor, Welcome to the Jungle.
|
|
5
5
|
Keywords: job-applications,ats,ashby,greenhouse,teamtailor,ai-agents,cli
|
|
6
6
|
Author: shbernal
|
|
@@ -16,11 +16,11 @@ Classifier: Programming Language :: Python :: 3
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.14
|
|
17
17
|
Classifier: Topic :: Office/Business
|
|
18
18
|
Classifier: Typing :: Typed
|
|
19
|
-
Requires-Dist: camoufox==0.5.
|
|
20
|
-
Requires-Dist: filelock==4.
|
|
19
|
+
Requires-Dist: camoufox==0.5.9
|
|
20
|
+
Requires-Dist: filelock==4.2.10
|
|
21
21
|
Requires-Dist: keyring==25.7.0
|
|
22
22
|
Requires-Dist: packaging==26.3
|
|
23
|
-
Requires-Dist: posthog==7.
|
|
23
|
+
Requires-Dist: posthog==7.87.1
|
|
24
24
|
Requires-Python: >=3.14
|
|
25
25
|
Project-URL: Homepage, https://github.com/shbernal/atsfill
|
|
26
26
|
Project-URL: Repository, https://github.com/shbernal/atsfill
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "atsfill"
|
|
3
|
-
version = "0.0.8.
|
|
3
|
+
version = "0.0.8.dev231"
|
|
4
4
|
description = "Read, dry-run and submit job application forms on hiring systems: Ashby, Greenhouse, Teamtailor, Welcome to the Jungle."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -28,11 +28,11 @@ classifiers = [
|
|
|
28
28
|
"Typing :: Typed",
|
|
29
29
|
]
|
|
30
30
|
dependencies = [
|
|
31
|
-
"camoufox==0.5.
|
|
32
|
-
"filelock==4.
|
|
31
|
+
"camoufox==0.5.9",
|
|
32
|
+
"filelock==4.2.10",
|
|
33
33
|
"keyring==25.7.0",
|
|
34
34
|
"packaging==26.3",
|
|
35
|
-
"posthog==7.
|
|
35
|
+
"posthog==7.87.1",
|
|
36
36
|
]
|
|
37
37
|
|
|
38
38
|
[[project.authors]]
|
|
@@ -51,13 +51,13 @@ requires = ["uv_build>=0.13.0,<0.14.0"]
|
|
|
51
51
|
build-backend = "uv_build"
|
|
52
52
|
|
|
53
53
|
[dependency-groups]
|
|
54
|
-
docs = ["zensical==0.
|
|
55
|
-
commit-check = ["commit-check==2.
|
|
54
|
+
docs = ["zensical==0.1.1"]
|
|
55
|
+
commit-check = ["commit-check==2.20.5"]
|
|
56
56
|
dev = [
|
|
57
|
-
"pytest>=9.
|
|
57
|
+
"pytest>=9.2.0",
|
|
58
58
|
"pytest-xdist>=3.8.0",
|
|
59
|
-
"ruff>=0.17.
|
|
60
|
-
"ty==0.0.
|
|
59
|
+
"ruff>=0.17.4",
|
|
60
|
+
"ty==0.0.101",
|
|
61
61
|
]
|
|
62
62
|
|
|
63
63
|
[tool.ruff]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "atsfill"
|
|
3
|
-
version = "0.0.8.
|
|
3
|
+
version = "0.0.8.dev231"
|
|
4
4
|
description = "Read, dry-run and submit job application forms on hiring systems: Ashby, Greenhouse, Teamtailor, Welcome to the Jungle."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "MIT"
|
|
@@ -21,11 +21,11 @@ classifiers = [
|
|
|
21
21
|
"Typing :: Typed",
|
|
22
22
|
]
|
|
23
23
|
dependencies = [
|
|
24
|
-
"camoufox==0.5.
|
|
25
|
-
"filelock==4.
|
|
24
|
+
"camoufox==0.5.9",
|
|
25
|
+
"filelock==4.2.10",
|
|
26
26
|
"keyring==25.7.0",
|
|
27
27
|
"packaging==26.3",
|
|
28
|
-
"posthog==7.
|
|
28
|
+
"posthog==7.87.1",
|
|
29
29
|
]
|
|
30
30
|
|
|
31
31
|
[project.urls]
|
|
@@ -42,16 +42,16 @@ build-backend = "uv_build"
|
|
|
42
42
|
|
|
43
43
|
[dependency-groups]
|
|
44
44
|
docs = [
|
|
45
|
-
"zensical==0.
|
|
45
|
+
"zensical==0.1.1",
|
|
46
46
|
]
|
|
47
47
|
commit-check = [
|
|
48
|
-
"commit-check==2.
|
|
48
|
+
"commit-check==2.20.5",
|
|
49
49
|
]
|
|
50
50
|
dev = [
|
|
51
|
-
"pytest>=9.
|
|
51
|
+
"pytest>=9.2.0",
|
|
52
52
|
"pytest-xdist>=3.8.0",
|
|
53
|
-
"ruff>=0.17.
|
|
54
|
-
"ty==0.0.
|
|
53
|
+
"ruff>=0.17.4",
|
|
54
|
+
"ty==0.0.101",
|
|
55
55
|
]
|
|
56
56
|
|
|
57
57
|
[tool.ruff]
|
|
@@ -805,7 +805,7 @@ def login(
|
|
|
805
805
|
`email` is remembered for the account; `password` is used for this sign-in only. `create`
|
|
806
806
|
creates the account with a password atsfill generates and stores first (a side effect),
|
|
807
807
|
giving the sign-up the user's `details`; with a password already stored, the account may
|
|
808
|
-
exist, so it signs in with that password and keeps the account's email
|
|
808
|
+
exist, so it signs in with that password and keeps the account's email if it has one, the
|
|
809
809
|
`details` finishing a sign-up the account was left in. An account without a password signs
|
|
810
810
|
in through the user's OTP command in place of a password source, and is created the same
|
|
811
811
|
way."""
|
|
@@ -827,7 +827,7 @@ def login(
|
|
|
827
827
|
report.status, report.reason = Status.BLOCKED, f"password_source: {e}"
|
|
828
828
|
return report
|
|
829
829
|
kept = stored is not None
|
|
830
|
-
if email and not kept:
|
|
830
|
+
if email and not (kept and accounts.email(mine, adapter, scope)):
|
|
831
831
|
accounts.remember(mine, adapter, scope, email)
|
|
832
832
|
if create and not kept:
|
|
833
833
|
assert email
|
|
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
|
|
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
|