hh-applicant-tool 0.6.5__py3-none-any.whl → 0.6.7__py3-none-any.whl
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.
Potentially problematic release.
This version of hh-applicant-tool might be problematic. Click here for more details.
- hh_applicant_tool/operations/apply_similar.py +21 -0
- hh_applicant_tool/types.py +1 -0
- {hh_applicant_tool-0.6.5.dist-info → hh_applicant_tool-0.6.7.dist-info}/METADATA +19 -3
- {hh_applicant_tool-0.6.5.dist-info → hh_applicant_tool-0.6.7.dist-info}/RECORD +6 -6
- {hh_applicant_tool-0.6.5.dist-info → hh_applicant_tool-0.6.7.dist-info}/WHEEL +1 -1
- {hh_applicant_tool-0.6.5.dist-info → hh_applicant_tool-0.6.7.dist-info}/entry_points.txt +0 -0
|
@@ -35,7 +35,9 @@ class Namespace(BaseNamespace):
|
|
|
35
35
|
page_interval: tuple[float, float]
|
|
36
36
|
order_by: str
|
|
37
37
|
search: str
|
|
38
|
+
schedule: str
|
|
38
39
|
dry_run: bool
|
|
40
|
+
experience: str
|
|
39
41
|
|
|
40
42
|
|
|
41
43
|
class Operation(BaseOperation, GetResumeIdMixin):
|
|
@@ -100,12 +102,25 @@ class Operation(BaseOperation, GetResumeIdMixin):
|
|
|
100
102
|
type=str,
|
|
101
103
|
default=None,
|
|
102
104
|
)
|
|
105
|
+
|
|
106
|
+
parser.add_argument(
|
|
107
|
+
"--schedule",
|
|
108
|
+
help="Тип графика. Возможные значения: fullDay, shift, flexible, remote, flyInFlyOut для полного дня, сменного графика, гибкого графика, удаленной работы и вахтового метода",
|
|
109
|
+
type=str,
|
|
110
|
+
default=None,
|
|
111
|
+
)
|
|
103
112
|
parser.add_argument(
|
|
104
113
|
"--dry-run",
|
|
105
114
|
help="Не отправлять отклики, а только выводить параметры запроса",
|
|
106
115
|
default=False,
|
|
107
116
|
action=argparse.BooleanOptionalAction,
|
|
108
117
|
)
|
|
118
|
+
parser.add_argument(
|
|
119
|
+
"--experience",
|
|
120
|
+
help="Уровень опыта работы в вакансии. Возможные значения: noExperience, between1And3, between3And6, moreThan6",
|
|
121
|
+
type=str,
|
|
122
|
+
default=None,
|
|
123
|
+
)
|
|
109
124
|
|
|
110
125
|
def run(
|
|
111
126
|
self, args: Namespace, api_client: ApiClient, telemetry_client: TelemetryClient
|
|
@@ -147,7 +162,9 @@ class Operation(BaseOperation, GetResumeIdMixin):
|
|
|
147
162
|
self.force_message = args.force_message
|
|
148
163
|
self.order_by = args.order_by
|
|
149
164
|
self.search = args.search
|
|
165
|
+
self.schedule = args.schedule
|
|
150
166
|
self.dry_run = args.dry_run
|
|
167
|
+
self.experience = args.experience
|
|
151
168
|
self._apply_similar()
|
|
152
169
|
|
|
153
170
|
def _get_application_messages(self, message_list: TextIO | None) -> list[str]:
|
|
@@ -359,6 +376,10 @@ class Operation(BaseOperation, GetResumeIdMixin):
|
|
|
359
376
|
}
|
|
360
377
|
if self.search:
|
|
361
378
|
params["text"] = self.search
|
|
379
|
+
if self.schedule:
|
|
380
|
+
params['schedule'] = self.schedule
|
|
381
|
+
if self.experience:
|
|
382
|
+
params['experience'] = self.experience
|
|
362
383
|
res: ApiListResponse = self.api_client.get(
|
|
363
384
|
f"/resumes/{self.resume_id}/similar_vacancies", params
|
|
364
385
|
)
|
hh_applicant_tool/types.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: hh-applicant-tool
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.7
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Senior YAML Developer
|
|
6
6
|
Author-email: yamldeveloper@proton.me
|
|
@@ -10,6 +10,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
13
14
|
Provides-Extra: qt
|
|
14
15
|
Requires-Dist: prettytable (>=3.6.0,<4.0.0)
|
|
15
16
|
Requires-Dist: pyqt6 (==6.7.0) ; extra == "qt"
|
|
@@ -64,6 +65,8 @@ $$('[data-qa="vacancy-serp__vacancy_response"]').forEach((el) => el.click());
|
|
|
64
65
|
|
|
65
66
|
### Установка
|
|
66
67
|
|
|
68
|
+
Универсальный с использованием pipx (требует пакета `python-pipx` в Arch):
|
|
69
|
+
|
|
67
70
|
```bash
|
|
68
71
|
# Версия с поддержкой авторизации через запуск окна с браузером (эта версия очень много весит)
|
|
69
72
|
# Можно использовать обычный pip
|
|
@@ -76,6 +79,18 @@ $ pipx install git+https://github.com/s3rgeym/hh-applicant-tool
|
|
|
76
79
|
$ pipx upgrade hh-applicant-tool
|
|
77
80
|
```
|
|
78
81
|
|
|
82
|
+
pipx добавляет исполняемый файл `hh-appplicant-tool` в `~/.local/bin`, делая эту команду доступной. Путь до `~/.local/bin` должен быть в `$PATH` (в большинстве дистрибутивов он добавлен).
|
|
83
|
+
|
|
84
|
+
Традиционный способ для Linux/Mac:
|
|
85
|
+
|
|
86
|
+
```sh
|
|
87
|
+
mkdir -p ~/.venvs
|
|
88
|
+
python -m venv ~/.venvs/hh-applicant-tool
|
|
89
|
+
# Это придется делать постоянно, чтобы команда hh-applicant-tool стала доступна
|
|
90
|
+
. ~/.venvs/hh-applicant-tool/bin/activate
|
|
91
|
+
pip install 'hh-applicant-tool[qt]'
|
|
92
|
+
```
|
|
93
|
+
|
|
79
94
|
Отдельно я распишу процесс установки в **Windows** в подробностях:
|
|
80
95
|
|
|
81
96
|
* Для начала поставьте последнюю версию **Python 3** любым удобным способом.
|
|
@@ -88,7 +103,8 @@ $ pipx upgrade hh-applicant-tool
|
|
|
88
103
|
```ps
|
|
89
104
|
PS> python -m venv hh-applicant-venv
|
|
90
105
|
PS> .\hh-applicant-venv\Scripts\activate
|
|
91
|
-
```
|
|
106
|
+
```
|
|
107
|
+
|
|
92
108
|
* Поставьте все пакеты в виртуальное окружение `hh-applicant-venv`:
|
|
93
109
|
```ps
|
|
94
110
|
(hh-applicant-venv) PS> pip install hh-applicant-tool[qt]
|
|
@@ -11,7 +11,7 @@ hh_applicant_tool/jsonc.py,sha256=QNS4gRHfi7SAeOFnffAIuhH7auC4Y4HAkmH12eX5PkI,40
|
|
|
11
11
|
hh_applicant_tool/main.py,sha256=A4YPkNXAdZY0GoGm0iigiQtzXTrpR3SaIGo54q9-Dd0,5652
|
|
12
12
|
hh_applicant_tool/mixins.py,sha256=8VoyrNgdlljy6pLTSFGJOYd9kagWT3yFOZYIGR6MEbI,425
|
|
13
13
|
hh_applicant_tool/operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
hh_applicant_tool/operations/apply_similar.py,sha256=
|
|
14
|
+
hh_applicant_tool/operations/apply_similar.py,sha256=cIfu9PKd1CZQYWnvsa_1V3ycoVXL3LYtpi4JWPxU3Io,16491
|
|
15
15
|
hh_applicant_tool/operations/authorize.py,sha256=NYrxe6oemUBcDHioT1t1lJmi9l45V4ZXzQPD_-nf6hk,3328
|
|
16
16
|
hh_applicant_tool/operations/call_api.py,sha256=o3GZgtqk6w4zpCm-JTHVjFrKVOwW-vsu1HdRi-hqAjo,1423
|
|
17
17
|
hh_applicant_tool/operations/clear_negotiations.py,sha256=FG_43P5GWmfKUggkKZqDznQ2_iBJ3zrZtv8yEI2XOXQ,4527
|
|
@@ -24,9 +24,9 @@ hh_applicant_tool/operations/reply_employers.py,sha256=uxLN2YpZvz3m_KtnfaaJcfVEZ
|
|
|
24
24
|
hh_applicant_tool/operations/update_resumes.py,sha256=_r7HA_vpYMs5DFY-mVP1ZRG9bggsv7ebKYrwteBmJ30,1053
|
|
25
25
|
hh_applicant_tool/operations/whoami.py,sha256=pNWJMmEQLBk3U6eiGz4CHcX7eXzDXcfezFjX7zLjqyA,711
|
|
26
26
|
hh_applicant_tool/telemetry_client.py,sha256=1EKZWc5kMx2yERW9SrR9vaf-OB6M_KKcMXeicH5YyY0,3834
|
|
27
|
-
hh_applicant_tool/types.py,sha256=
|
|
27
|
+
hh_applicant_tool/types.py,sha256=sQbt_vGXtWPRJ3UzcUkE87BTHOaGTsFxqdZa_qFghZE,864
|
|
28
28
|
hh_applicant_tool/utils.py,sha256=3T4A2AykGqTwtGAttmYplIjHwFl3pNAcbWIVuA-OheQ,3080
|
|
29
|
-
hh_applicant_tool-0.6.
|
|
30
|
-
hh_applicant_tool-0.6.
|
|
31
|
-
hh_applicant_tool-0.6.
|
|
32
|
-
hh_applicant_tool-0.6.
|
|
29
|
+
hh_applicant_tool-0.6.7.dist-info/METADATA,sha256=YqBfvYMM4C-uC8qXwvGQ6047X6fHlv3eI8EHR4-A6iQ,21401
|
|
30
|
+
hh_applicant_tool-0.6.7.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
31
|
+
hh_applicant_tool-0.6.7.dist-info/entry_points.txt,sha256=Vb7M2YaYLMtKYJZh8chIrXZApMzSRFT1-rQw-U9r10g,65
|
|
32
|
+
hh_applicant_tool-0.6.7.dist-info/RECORD,,
|
|
File without changes
|