atsfill 0.0.4.dev100__tar.gz → 0.0.4.dev101__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.
Files changed (47) hide show
  1. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/PKG-INFO +1 -1
  2. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/pyproject.toml +1 -1
  3. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/pyproject.toml.orig +1 -1
  4. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/smartrecruiters.py +7 -1
  5. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/LICENSE +0 -0
  6. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/README.md +0 -0
  7. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/__init__.py +0 -0
  8. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/__init__.py +0 -0
  9. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/ashby.py +0 -0
  10. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/bamboohr.py +0 -0
  11. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/breezy.py +0 -0
  12. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/dayforce.py +0 -0
  13. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/eightfold.py +0 -0
  14. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/greenhouse.py +0 -0
  15. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/hireology.py +0 -0
  16. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/hiringthing.py +0 -0
  17. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/jazzhr.py +0 -0
  18. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/lever.py +0 -0
  19. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/manatal.py +0 -0
  20. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/oracle.py +0 -0
  21. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/paycor.py +0 -0
  22. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/paylocity.py +0 -0
  23. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/personio.py +0 -0
  24. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/phenom.py +0 -0
  25. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/pinpoint.py +0 -0
  26. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/recruitee.py +0 -0
  27. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/rippling.py +0 -0
  28. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/teamtailor.py +0 -0
  29. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/workable.py +0 -0
  30. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/workday.py +0 -0
  31. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/wttj.py +0 -0
  32. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/adapters/zohorecruit.py +0 -0
  33. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/cli.py +0 -0
  34. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/__init__.py +0 -0
  35. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/accounts.py +0 -0
  36. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/adapter.py +0 -0
  37. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/attempts.py +0 -0
  38. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/browser.py +0 -0
  39. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/commands.py +0 -0
  40. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/conditions.py +0 -0
  41. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/matching.py +0 -0
  42. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/passwords.py +0 -0
  43. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/paths.py +0 -0
  44. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/registry.py +0 -0
  45. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/core/results.py +0 -0
  46. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/py.typed +0 -0
  47. {atsfill-0.0.4.dev100 → atsfill-0.0.4.dev101}/src/atsfill/registry.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atsfill
3
- Version: 0.0.4.dev100
3
+ Version: 0.0.4.dev101
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "atsfill"
3
- version = "0.0.4.dev100"
3
+ version = "0.0.4.dev101"
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"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "atsfill"
3
- version = "0.0.4.dev100"
3
+ version = "0.0.4.dev101"
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"
@@ -35,6 +35,7 @@ KEY_DELAY_MS = 20
35
35
  LOCATION_KEY_DELAY_MS = 30
36
36
  NEXT_TRIES = 3
37
37
  YES_NO = ["Yes", "No"]
38
+ NUMBER = re.compile(r"-?\d+([.,]\d+)?") # what an `input[type=number]` takes
38
39
 
39
40
  # The profile page: (field id, the input, the element carrying `label` and `required`).
40
41
  PROFILE = [
@@ -221,6 +222,8 @@ class SmartRecruiters:
221
222
  if kind in SKIPPED:
222
223
  return []
223
224
  label = _plain(question["label"])
225
+ if kind == "currency": # an `input[type=number]`, its currency beside
226
+ label += " (a number)"
224
227
  shown_when = self._shown_when(question["id"])
225
228
  required = bool(question["required"])
226
229
  unfillable = None
@@ -453,7 +456,10 @@ def _fill_question(
453
456
  continue
454
457
  option.click()
455
458
  case _:
456
- _inputs(box, entry, question).fill(values[0])
459
+ target = _inputs(box, entry, question)
460
+ if target.get_attribute("type") == "number" and not NUMBER.fullmatch(values[0]):
461
+ return # a number input holds no text: it reads back empty
462
+ target.fill(values[0])
457
463
 
458
464
 
459
465
  def _read_question(box: Locator, question: dict[str, Any], entry: dict[str, Any]) -> Answer | None:
File without changes
File without changes