hackerrank 2026.7.8__tar.gz → 2026.7.30__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.
- hackerrank-2026.7.30/CHANGELOG.rst +37 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/PKG-INFO +10 -10
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/pyproject.toml +11 -12
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank/_dict_types.py +2 -2
- hackerrank-2026.7.30/src/hackerrank/async_client.py +2615 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank/client.py +27 -25
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank/types.py +9 -5
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank.egg-info/PKG-INFO +10 -10
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank.egg-info/requires.txt +9 -9
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank.egg-info/scm_file_list.json +33 -33
- hackerrank-2026.7.30/src/hackerrank.egg-info/scm_version.json +8 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/tests/conftest.py +25 -13
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/tests/test_async_client.py +39 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/tests/test_client.py +19 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/tests/test_coverage_gaps.py +3 -9
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/tests/test_endpoints.py +458 -27
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/tests/test_types.py +7 -2
- hackerrank-2026.7.8/CHANGELOG.rst +0 -23
- hackerrank-2026.7.8/src/hackerrank/async_client.py +0 -1325
- hackerrank-2026.7.8/src/hackerrank.egg-info/scm_version.json +0 -8
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.git_archival.txt +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.gitattributes +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.github/dependabot.yml +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.github/workflows/ci.yml +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.github/workflows/dependabot-merge.yml +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.github/workflows/lint.yml +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.github/workflows/publish-site.yml +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.github/workflows/release.yml +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.gitignore +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.pre-commit-config.yaml +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/.prettierrc +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/LICENSE +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/README.rst +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/conftest.py +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/__init__.py +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/api-reference.rst +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/changelog.rst +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/conf.py +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/contributing.rst +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/index.rst +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/openapi-spec.rst +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/release-process.rst +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/source/unreleased.rst +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/docs/towncrier_template.rst.jinja +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/newsfragments/.gitkeep +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/openapi.json +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/setup.cfg +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/spelling_private_dict.txt +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank/__init__.py +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank/exceptions.py +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank/py.typed +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank/transports.py +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank.egg-info/SOURCES.txt +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank.egg-info/dependency_links.txt +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank.egg-info/not-zip-safe +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/src/hackerrank.egg-info/top_level.txt +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/tests/__init__.py +0 -0
- {hackerrank-2026.7.8 → hackerrank-2026.7.30}/zizmor.yml +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Changelog
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
.. towncrier release notes start
|
|
5
|
+
|
|
6
|
+
2026.07.30
|
|
7
|
+
----------
|
|
8
|
+
|
|
9
|
+
- Align interview-template create and update requests with the current API,
|
|
10
|
+
return updated templates, and parse live string template IDs and integer
|
|
11
|
+
question IDs.
|
|
12
|
+
|
|
13
|
+
2026.07.19
|
|
14
|
+
----------
|
|
15
|
+
|
|
16
|
+
- SCIM v2 requests are now sent to ``https://services.hackerrank.com/scim/v2`` instead of the v3 API host, so ``client.scim`` works out of the box. A new ``scim_base_url`` argument on ``HackerRank`` and ``AsyncHackerRank`` allows overriding it.
|
|
17
|
+
|
|
18
|
+
- Bring the async ``AsyncHackerRank`` client to full parity with the synchronous ``HackerRank`` client, adding all missing operations and aligning method shapes (``ats.codepair``/``ats.codescreen``, ``teams.memberships`` and ``scim.users``/``scim.groups`` sub-namespaces).
|
|
19
|
+
|
|
20
|
+
2026.07.08
|
|
21
|
+
----------
|
|
22
|
+
|
|
23
|
+
No significant changes.
|
|
24
|
+
|
|
25
|
+
2026.05.12.2
|
|
26
|
+
------------
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
2026.05.12.1
|
|
30
|
+
------------
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
2026.05.12
|
|
34
|
+
----------
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
* Initial release.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hackerrank
|
|
3
|
-
Version: 2026.7.
|
|
3
|
+
Version: 2026.7.30
|
|
4
4
|
Summary: Interact with the HackerRank for Work API.
|
|
5
5
|
Author-email: Adam Dangoor <adamdangoor@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -25,19 +25,19 @@ Requires-Dist: beartype==0.22.9; extra == "dev"
|
|
|
25
25
|
Requires-Dist: check-manifest==0.51; extra == "dev"
|
|
26
26
|
Requires-Dist: deptry==0.25.1; extra == "dev"
|
|
27
27
|
Requires-Dist: doc8==2.0.0; extra == "dev"
|
|
28
|
-
Requires-Dist: doccmd==2026.
|
|
28
|
+
Requires-Dist: doccmd==2026.7.19; extra == "dev"
|
|
29
29
|
Requires-Dist: furo==2025.12.19; extra == "dev"
|
|
30
30
|
Requires-Dist: interrogate==1.7.0; extra == "dev"
|
|
31
|
-
Requires-Dist: mypy[faster-cache]==2.
|
|
32
|
-
Requires-Dist: mypy-strict-kwargs==2026.
|
|
31
|
+
Requires-Dist: mypy[faster-cache]==2.3.0; extra == "dev"
|
|
32
|
+
Requires-Dist: mypy-strict-kwargs==2026.7.19.1; extra == "dev"
|
|
33
33
|
Requires-Dist: openapi-mock==2026.3.2; extra == "dev"
|
|
34
|
-
Requires-Dist: prek==0.4.
|
|
34
|
+
Requires-Dist: prek==0.4.11; extra == "dev"
|
|
35
35
|
Requires-Dist: pydocstringformatter==1.0.0; extra == "dev"
|
|
36
36
|
Requires-Dist: pydocstyle==6.3; extra == "dev"
|
|
37
37
|
Requires-Dist: pygments==2.20.0; extra == "dev"
|
|
38
38
|
Requires-Dist: pylint[spelling]==4.0.6; extra == "dev"
|
|
39
39
|
Requires-Dist: pylint-per-file-ignores==3.2.1; extra == "dev"
|
|
40
|
-
Requires-Dist: pyproject-fmt==2.
|
|
40
|
+
Requires-Dist: pyproject-fmt==2.26.0; extra == "dev"
|
|
41
41
|
Requires-Dist: pyrefly==1.1.1; extra == "dev"
|
|
42
42
|
Requires-Dist: pyright==1.1.411; extra == "dev"
|
|
43
43
|
Requires-Dist: pyroma==5.0.1; extra == "dev"
|
|
@@ -47,7 +47,7 @@ Requires-Dist: pytest-beartype-tests==2026.4.26; extra == "dev"
|
|
|
47
47
|
Requires-Dist: pytest-cov==7.1.0; extra == "dev"
|
|
48
48
|
Requires-Dist: pyyaml==6.0.3; extra == "dev"
|
|
49
49
|
Requires-Dist: respx==0.23.1; extra == "dev"
|
|
50
|
-
Requires-Dist: ruff==0.
|
|
50
|
+
Requires-Dist: ruff==0.16.0; extra == "dev"
|
|
51
51
|
Requires-Dist: shellcheck-py==0.11.0.1; extra == "dev"
|
|
52
52
|
Requires-Dist: shfmt-py==4.0.0; extra == "dev"
|
|
53
53
|
Requires-Dist: sphinx==9.1.0; extra == "dev"
|
|
@@ -57,13 +57,13 @@ Requires-Dist: sphinx-pyproject==0.3.0; extra == "dev"
|
|
|
57
57
|
Requires-Dist: sphinx-substitution-extensions==2026.6.17; extra == "dev"
|
|
58
58
|
Requires-Dist: sphinxcontrib-spelling==8.0.2; extra == "dev"
|
|
59
59
|
Requires-Dist: sphinxcontrib-towncrier==0.5.0a0; extra == "dev"
|
|
60
|
-
Requires-Dist: strict-kwargs==2026.
|
|
60
|
+
Requires-Dist: strict-kwargs==2026.7.24; extra == "dev"
|
|
61
61
|
Requires-Dist: sybil==10.1.0; extra == "dev"
|
|
62
62
|
Requires-Dist: towncrier==25.8.0; extra == "dev"
|
|
63
|
-
Requires-Dist: ty==0.0.
|
|
63
|
+
Requires-Dist: ty==0.0.65; extra == "dev"
|
|
64
64
|
Requires-Dist: vulture==2.16; extra == "dev"
|
|
65
65
|
Requires-Dist: yamlfix==1.19.1; extra == "dev"
|
|
66
|
-
Requires-Dist: zizmor==1.
|
|
66
|
+
Requires-Dist: zizmor==1.28.0; extra == "dev"
|
|
67
67
|
Provides-Extra: release
|
|
68
68
|
Requires-Dist: check-wheel-contents==0.6.3; extra == "release"
|
|
69
69
|
Requires-Dist: towncrier==25.8.0; extra == "release"
|
|
@@ -41,19 +41,19 @@ optional-dependencies.dev = [
|
|
|
41
41
|
"check-manifest==0.51",
|
|
42
42
|
"deptry==0.25.1",
|
|
43
43
|
"doc8==2.0.0",
|
|
44
|
-
"doccmd==2026.
|
|
44
|
+
"doccmd==2026.7.19",
|
|
45
45
|
"furo==2025.12.19",
|
|
46
46
|
"interrogate==1.7.0",
|
|
47
|
-
"mypy[faster-cache]==2.
|
|
48
|
-
"mypy-strict-kwargs==2026.
|
|
47
|
+
"mypy[faster-cache]==2.3.0",
|
|
48
|
+
"mypy-strict-kwargs==2026.7.19.1",
|
|
49
49
|
"openapi-mock==2026.3.2",
|
|
50
|
-
"prek==0.4.
|
|
50
|
+
"prek==0.4.11",
|
|
51
51
|
"pydocstringformatter==1.0.0",
|
|
52
52
|
"pydocstyle==6.3",
|
|
53
53
|
"pygments==2.20.0",
|
|
54
54
|
"pylint[spelling]==4.0.6",
|
|
55
55
|
"pylint-per-file-ignores==3.2.1",
|
|
56
|
-
"pyproject-fmt==2.
|
|
56
|
+
"pyproject-fmt==2.26.0",
|
|
57
57
|
"pyrefly==1.1.1",
|
|
58
58
|
"pyright==1.1.411",
|
|
59
59
|
"pyroma==5.0.1",
|
|
@@ -63,7 +63,7 @@ optional-dependencies.dev = [
|
|
|
63
63
|
"pytest-cov==7.1.0",
|
|
64
64
|
"pyyaml==6.0.3",
|
|
65
65
|
"respx==0.23.1",
|
|
66
|
-
"ruff==0.
|
|
66
|
+
"ruff==0.16.0",
|
|
67
67
|
# We add shellcheck-py not only for shell scripts and shell code blocks,
|
|
68
68
|
# but also because having it installed means that ``actionlint-py`` will
|
|
69
69
|
# use it to lint shell commands in GitHub workflow files.
|
|
@@ -78,13 +78,13 @@ optional-dependencies.dev = [
|
|
|
78
78
|
# ``sphinxcontrib-towncrier`` renders unreleased news fragments
|
|
79
79
|
# into docs/source/unreleased.rst during Sphinx builds.
|
|
80
80
|
"sphinxcontrib-towncrier==0.5.0a0",
|
|
81
|
-
"strict-kwargs==2026.
|
|
81
|
+
"strict-kwargs==2026.7.24",
|
|
82
82
|
"sybil==10.1.0",
|
|
83
83
|
"towncrier==25.8.0",
|
|
84
|
-
"ty==0.0.
|
|
84
|
+
"ty==0.0.65",
|
|
85
85
|
"vulture==2.16",
|
|
86
86
|
"yamlfix==1.19.1",
|
|
87
|
-
"zizmor==1.
|
|
87
|
+
"zizmor==1.28.0",
|
|
88
88
|
]
|
|
89
89
|
optional-dependencies.release = [ "check-wheel-contents==0.6.3", "towncrier==25.8.0" ]
|
|
90
90
|
urls.Documentation = "https://adamtheturtle.github.io/hackerrank/"
|
|
@@ -102,9 +102,6 @@ package-data.hackerrank = [
|
|
|
102
102
|
]
|
|
103
103
|
zip-safe = false
|
|
104
104
|
|
|
105
|
-
[tool.distutils]
|
|
106
|
-
bdist_wheel.universal = true
|
|
107
|
-
|
|
108
105
|
[tool.setuptools_scm]
|
|
109
106
|
# This keeps the start of the version the same as the last release.
|
|
110
107
|
# This is useful for our documentation to include e.g. binary links
|
|
@@ -121,6 +118,8 @@ lint.select = [
|
|
|
121
118
|
lint.ignore = [
|
|
122
119
|
# Ruff warns that this conflicts with the formatter.
|
|
123
120
|
"COM812",
|
|
121
|
+
# Copyright headers are not required.
|
|
122
|
+
"CPY001",
|
|
124
123
|
# Allow our chosen docstring line-style - pydocstringformatter handles formatting
|
|
125
124
|
# but doesn't enforce D205 (blank line after summary) or D212 (summary on first line).
|
|
126
125
|
"D205",
|
|
@@ -47,14 +47,14 @@ class InterviewTranscriptDict(TypedDict):
|
|
|
47
47
|
class InterviewTemplateDict(TypedDict):
|
|
48
48
|
"""A HackerRank interview template."""
|
|
49
49
|
|
|
50
|
-
id: int
|
|
50
|
+
id: int | str
|
|
51
51
|
name: str
|
|
52
52
|
created_at: NotRequired[str]
|
|
53
53
|
status: NotRequired[int]
|
|
54
54
|
user: NotRequired[int]
|
|
55
55
|
roles: NotRequired[list[str]]
|
|
56
56
|
team_share: NotRequired[int]
|
|
57
|
-
questions: NotRequired[list[str]]
|
|
57
|
+
questions: NotRequired[list[int | str]]
|
|
58
58
|
scorecard: NotRequired[int]
|
|
59
59
|
import_template: NotRequired[bool]
|
|
60
60
|
editor_access: NotRequired[bool]
|