PyFunceble-dev 4.2.6__py3-none-any.whl → 4.2.9__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.
Files changed (277) hide show
  1. PyFunceble/__init__.py +1 -1
  2. PyFunceble/checker/__init__.py +1 -1
  3. PyFunceble/checker/availability/__init__.py +1 -1
  4. PyFunceble/checker/availability/base.py +17 -10
  5. PyFunceble/checker/availability/domain.py +1 -2
  6. PyFunceble/checker/availability/domain_and_ip.py +1 -1
  7. PyFunceble/checker/availability/extras/__init__.py +1 -1
  8. PyFunceble/checker/availability/extras/base.py +2 -3
  9. PyFunceble/checker/availability/extras/dns.py +1 -1
  10. PyFunceble/checker/availability/extras/etoxic.py +1 -1
  11. PyFunceble/checker/availability/extras/parked.py +1 -1
  12. PyFunceble/checker/availability/extras/rules.py +2 -2
  13. PyFunceble/checker/availability/extras/subject_switch.py +1 -1
  14. PyFunceble/checker/availability/ip.py +1 -2
  15. PyFunceble/checker/availability/params.py +1 -1
  16. PyFunceble/checker/availability/status.py +1 -1
  17. PyFunceble/checker/availability/url.py +1 -2
  18. PyFunceble/checker/base.py +1 -1
  19. PyFunceble/checker/complex_json_encoder.py +1 -1
  20. PyFunceble/checker/params_base.py +1 -1
  21. PyFunceble/checker/reputation/__init__.py +1 -1
  22. PyFunceble/checker/reputation/base.py +1 -2
  23. PyFunceble/checker/reputation/domain.py +1 -2
  24. PyFunceble/checker/reputation/domain_and_ip.py +1 -1
  25. PyFunceble/checker/reputation/ip.py +1 -2
  26. PyFunceble/checker/reputation/params.py +1 -1
  27. PyFunceble/checker/reputation/status.py +1 -1
  28. PyFunceble/checker/reputation/url.py +1 -2
  29. PyFunceble/checker/status_base.py +1 -1
  30. PyFunceble/checker/syntax/__init__.py +1 -1
  31. PyFunceble/checker/syntax/base.py +1 -1
  32. PyFunceble/checker/syntax/domain.py +1 -1
  33. PyFunceble/checker/syntax/domain_and_ip.py +1 -1
  34. PyFunceble/checker/syntax/domain_base.py +1 -1
  35. PyFunceble/checker/syntax/ip.py +1 -1
  36. PyFunceble/checker/syntax/ipv4.py +1 -1
  37. PyFunceble/checker/syntax/ipv6.py +1 -1
  38. PyFunceble/checker/syntax/params.py +1 -1
  39. PyFunceble/checker/syntax/second_lvl_domain.py +7 -3
  40. PyFunceble/checker/syntax/status.py +2 -1
  41. PyFunceble/checker/syntax/subdomain.py +4 -2
  42. PyFunceble/checker/syntax/url.py +1 -2
  43. PyFunceble/checker/utils/__init__.py +1 -1
  44. PyFunceble/checker/utils/whois.py +1 -1
  45. PyFunceble/cli/__init__.py +1 -1
  46. PyFunceble/cli/continuous_integration/__init__.py +1 -1
  47. PyFunceble/cli/continuous_integration/base.py +1 -1
  48. PyFunceble/cli/continuous_integration/exceptions.py +1 -1
  49. PyFunceble/cli/continuous_integration/github_actions.py +1 -1
  50. PyFunceble/cli/continuous_integration/gitlab_ci.py +1 -1
  51. PyFunceble/cli/continuous_integration/jenkins.py +1 -1
  52. PyFunceble/cli/continuous_integration/travis_ci.py +1 -1
  53. PyFunceble/cli/continuous_integration/utils.py +1 -1
  54. PyFunceble/cli/credential_loader.py +4 -4
  55. PyFunceble/cli/entry_points/__init__.py +1 -1
  56. PyFunceble/cli/entry_points/clean.py +1 -1
  57. PyFunceble/cli/entry_points/iana.py +1 -1
  58. PyFunceble/cli/entry_points/production.py +1 -1
  59. PyFunceble/cli/entry_points/public_suffix.py +1 -1
  60. PyFunceble/cli/entry_points/pyfunceble/__init__.py +1 -1
  61. PyFunceble/cli/entry_points/pyfunceble/argsparser.py +1 -1
  62. PyFunceble/cli/entry_points/pyfunceble/cli.py +1 -1
  63. PyFunceble/cli/execution_time.py +1 -1
  64. PyFunceble/cli/facility.py +1 -1
  65. PyFunceble/cli/factory.py +1 -1
  66. PyFunceble/cli/file_preloader.py +4 -4
  67. PyFunceble/cli/filesystem/__init__.py +1 -1
  68. PyFunceble/cli/filesystem/cleanup.py +1 -1
  69. PyFunceble/cli/filesystem/counter.py +1 -1
  70. PyFunceble/cli/filesystem/dir_base.py +1 -1
  71. PyFunceble/cli/filesystem/dir_structure/__init__.py +1 -1
  72. PyFunceble/cli/filesystem/dir_structure/backup.py +1 -1
  73. PyFunceble/cli/filesystem/dir_structure/base.py +1 -1
  74. PyFunceble/cli/filesystem/dir_structure/restore.py +1 -1
  75. PyFunceble/cli/filesystem/json_base.py +1 -1
  76. PyFunceble/cli/filesystem/printer/__init__.py +1 -1
  77. PyFunceble/cli/filesystem/printer/base.py +1 -1
  78. PyFunceble/cli/filesystem/printer/file.py +1 -1
  79. PyFunceble/cli/filesystem/printer/stdout.py +1 -1
  80. PyFunceble/cli/filesystem/registrar_counter.py +1 -1
  81. PyFunceble/cli/filesystem/status_file.py +1 -1
  82. PyFunceble/cli/migrators/__init__.py +1 -1
  83. PyFunceble/cli/migrators/alembic.py +1 -1
  84. PyFunceble/cli/migrators/base.py +1 -2
  85. PyFunceble/cli/migrators/csv_file/__init__.py +1 -1
  86. PyFunceble/cli/migrators/csv_file/base.py +1 -1
  87. PyFunceble/cli/migrators/csv_file/inactive_source_delete.py +1 -1
  88. PyFunceble/cli/migrators/csv_file/whois_registrar_add.py +1 -1
  89. PyFunceble/cli/migrators/db_base.py +1 -1
  90. PyFunceble/cli/migrators/file_cleanup/__init__.py +1 -1
  91. PyFunceble/cli/migrators/file_cleanup/base.py +1 -1
  92. PyFunceble/cli/migrators/file_cleanup/hashes_file.py +1 -1
  93. PyFunceble/cli/migrators/file_cleanup/mining_file.py +1 -1
  94. PyFunceble/cli/migrators/file_cleanup/production_config_file.py +1 -1
  95. PyFunceble/cli/migrators/json2csv/__init__.py +1 -1
  96. PyFunceble/cli/migrators/json2csv/base.py +1 -1
  97. PyFunceble/cli/migrators/json2csv/inactive.py +1 -1
  98. PyFunceble/cli/migrators/json2csv/whois.py +1 -1
  99. PyFunceble/cli/migrators/mariadb/__init__.py +1 -1
  100. PyFunceble/cli/migrators/mariadb/base.py +1 -1
  101. PyFunceble/cli/migrators/mariadb/file_and_status.py +1 -1
  102. PyFunceble/cli/migrators/mariadb/whois_record_idna_subject.py +1 -1
  103. PyFunceble/cli/processes/__init__.py +1 -1
  104. PyFunceble/cli/processes/base.py +1 -1
  105. PyFunceble/cli/processes/chancy_producer.py +1 -1
  106. PyFunceble/cli/processes/chancy_tester.py +1 -1
  107. PyFunceble/cli/processes/dir_files_sorter.py +1 -1
  108. PyFunceble/cli/processes/file_sorter.py +1 -1
  109. PyFunceble/cli/processes/migrator.py +1 -1
  110. PyFunceble/cli/processes/miner.py +1 -1
  111. PyFunceble/cli/processes/producer.py +1 -1
  112. PyFunceble/cli/processes/tester.py +1 -1
  113. PyFunceble/cli/processes/workers/__init__.py +1 -1
  114. PyFunceble/cli/processes/workers/base.py +4 -4
  115. PyFunceble/cli/processes/workers/chancy_producer.py +1 -1
  116. PyFunceble/cli/processes/workers/chancy_tester.py +1 -1
  117. PyFunceble/cli/processes/workers/dir_files_sorter.py +1 -1
  118. PyFunceble/cli/processes/workers/file_sorter.py +1 -1
  119. PyFunceble/cli/processes/workers/file_sorter_base.py +1 -1
  120. PyFunceble/cli/processes/workers/migrator.py +1 -1
  121. PyFunceble/cli/processes/workers/miner.py +1 -1
  122. PyFunceble/cli/processes/workers/producer.py +1 -1
  123. PyFunceble/cli/processes/workers/tester.py +1 -1
  124. PyFunceble/cli/scripts/__init__.py +1 -1
  125. PyFunceble/cli/scripts/iana.py +1 -1
  126. PyFunceble/cli/scripts/production.py +4 -5
  127. PyFunceble/cli/scripts/public_suffix.py +1 -1
  128. PyFunceble/cli/storage.py +6 -4
  129. PyFunceble/cli/storage_facility.py +1 -1
  130. PyFunceble/cli/system/__init__.py +1 -1
  131. PyFunceble/cli/system/base.py +1 -1
  132. PyFunceble/cli/system/integrator.py +1 -1
  133. PyFunceble/cli/system/launcher.py +1 -1
  134. PyFunceble/cli/utils/__init__.py +1 -1
  135. PyFunceble/cli/utils/ascii_logo.py +1 -1
  136. PyFunceble/cli/utils/sort.py +1 -1
  137. PyFunceble/cli/utils/stdout.py +1 -1
  138. PyFunceble/cli/utils/testing.py +2 -4
  139. PyFunceble/cli/utils/version.py +1 -1
  140. PyFunceble/config/__init__.py +1 -1
  141. PyFunceble/config/compare.py +1 -1
  142. PyFunceble/config/loader.py +1 -1
  143. PyFunceble/converter/__init__.py +1 -1
  144. PyFunceble/converter/adblock_input_line2subject.py +1 -1
  145. PyFunceble/converter/base.py +1 -1
  146. PyFunceble/converter/cidr2subject.py +1 -1
  147. PyFunceble/converter/input_line2subject.py +1 -1
  148. PyFunceble/converter/internal_url.py +1 -1
  149. PyFunceble/converter/rpz_input_line2subject.py +1 -1
  150. PyFunceble/converter/rpz_policy2subject.py +1 -1
  151. PyFunceble/converter/subject2complements.py +1 -1
  152. PyFunceble/converter/url2netloc.py +1 -1
  153. PyFunceble/converter/wildcard2subject.py +1 -1
  154. PyFunceble/data/alembic/__init__.py +1 -1
  155. PyFunceble/data/alembic/mysql/__init__.py +1 -1
  156. PyFunceble/data/alembic/mysql/env.py +1 -1
  157. PyFunceble/data/alembic/mysql/versions/35c79626ecb9_fix_some_columns.py +1 -0
  158. PyFunceble/data/alembic/mysql/versions/3a4c55a9320d_add_continue_table.py +1 -0
  159. PyFunceble/data/alembic/mysql/versions/3d6f4a33cdb2_add_inactive_table.py +1 -0
  160. PyFunceble/data/alembic/mysql/versions/45713fea8097_deletion_uneeded_columns_from_whois_.py +1 -0
  161. PyFunceble/data/alembic/mysql/versions/459a0d7b8f09_add_idna_subject_column_into_whois.py +1 -0
  162. PyFunceble/data/alembic/mysql/versions/6f4729deaf03_delete_inactive_source_column.py +1 -0
  163. PyFunceble/data/alembic/mysql/versions/7bcf7fa64ba1_rename_created_to_created_at_and.py +1 -0
  164. PyFunceble/data/alembic/mysql/versions/83ada95132bf_delete_the_file_table.py +1 -0
  165. PyFunceble/data/alembic/mysql/versions/912bbcb77a6c_add_registrar_column.py +1 -0
  166. PyFunceble/data/alembic/mysql/versions/95dc17ddd729_introduction_of_the_session_id_column.py +1 -0
  167. PyFunceble/data/alembic/mysql/versions/__init__.py +1 -1
  168. PyFunceble/data/alembic/mysql/versions/ade87195b0a0_base.py +1 -0
  169. PyFunceble/data/alembic/mysql/versions/bef7bcaac3f2_make_id_a_bigint.py +1 -0
  170. PyFunceble/data/alembic/mysql/versions/d8893cd406db_allow_whois_record_to_be_empty_null.py +1 -0
  171. PyFunceble/data/alembic/mysql/versions/e04e8301d1a2_deletion_of_the_mined_table.py +1 -0
  172. PyFunceble/data/alembic/postgresql/__init__.py +1 -1
  173. PyFunceble/data/alembic/postgresql/env.py +1 -1
  174. PyFunceble/data/alembic/postgresql/versions/__init__.py +1 -1
  175. PyFunceble/data/alembic/postgresql/versions/a32ac5d66eee_initial_version.py +1 -0
  176. PyFunceble/database/__init__.py +1 -1
  177. PyFunceble/database/credential/__init__.py +1 -1
  178. PyFunceble/database/credential/base.py +1 -1
  179. PyFunceble/database/credential/mariadb.py +1 -1
  180. PyFunceble/database/credential/mysql.py +1 -1
  181. PyFunceble/database/credential/postgresql.py +1 -1
  182. PyFunceble/database/schemas/__init__.py +1 -1
  183. PyFunceble/database/schemas/autocontinue.py +1 -1
  184. PyFunceble/database/schemas/inactive.py +1 -1
  185. PyFunceble/database/schemas/status.py +1 -1
  186. PyFunceble/database/schemas/whois_record.py +1 -1
  187. PyFunceble/database/session.py +1 -1
  188. PyFunceble/database/sqlalchemy/__init__.py +1 -1
  189. PyFunceble/database/sqlalchemy/all_schemas.py +1 -1
  190. PyFunceble/database/sqlalchemy/base_schema.py +1 -1
  191. PyFunceble/dataset/__init__.py +1 -1
  192. PyFunceble/dataset/autocontinue/__init__.py +1 -1
  193. PyFunceble/dataset/autocontinue/base.py +1 -1
  194. PyFunceble/dataset/autocontinue/csv.py +1 -1
  195. PyFunceble/dataset/autocontinue/sql.py +1 -1
  196. PyFunceble/dataset/base.py +1 -1
  197. PyFunceble/dataset/csv_base.py +1 -1
  198. PyFunceble/dataset/db_base.py +1 -1
  199. PyFunceble/dataset/iana.py +1 -1
  200. PyFunceble/dataset/inactive/__init__.py +1 -1
  201. PyFunceble/dataset/inactive/base.py +1 -1
  202. PyFunceble/dataset/inactive/csv.py +1 -1
  203. PyFunceble/dataset/inactive/sql.py +1 -1
  204. PyFunceble/dataset/ipv4_reputation.py +1 -1
  205. PyFunceble/dataset/public_suffix.py +1 -1
  206. PyFunceble/dataset/sql_base.py +1 -1
  207. PyFunceble/dataset/user_agent.py +51 -9
  208. PyFunceble/dataset/whois/__init__.py +1 -1
  209. PyFunceble/dataset/whois/base.py +1 -1
  210. PyFunceble/dataset/whois/csv.py +1 -1
  211. PyFunceble/dataset/whois/sql.py +1 -1
  212. PyFunceble/downloader/__init__.py +1 -1
  213. PyFunceble/downloader/base.py +1 -1
  214. PyFunceble/downloader/exceptions.py +1 -1
  215. PyFunceble/downloader/iana.py +1 -1
  216. PyFunceble/downloader/ipv4_reputation.py +1 -1
  217. PyFunceble/downloader/public_suffix.py +1 -1
  218. PyFunceble/downloader/user_agents.py +1 -1
  219. PyFunceble/exceptions.py +1 -1
  220. PyFunceble/facility.py +1 -1
  221. PyFunceble/factory.py +1 -1
  222. PyFunceble/helpers/__init__.py +1 -1
  223. PyFunceble/helpers/command.py +1 -1
  224. PyFunceble/helpers/dict.py +1 -1
  225. PyFunceble/helpers/directory.py +1 -1
  226. PyFunceble/helpers/download.py +1 -1
  227. PyFunceble/helpers/environment_variable.py +1 -1
  228. PyFunceble/helpers/exceptions.py +1 -1
  229. PyFunceble/helpers/file.py +1 -1
  230. PyFunceble/helpers/hash.py +1 -1
  231. PyFunceble/helpers/list.py +1 -1
  232. PyFunceble/helpers/merge.py +1 -1
  233. PyFunceble/helpers/regex.py +1 -1
  234. PyFunceble/logger.py +1 -1
  235. PyFunceble/query/__init__.py +1 -1
  236. PyFunceble/query/collection.py +222 -43
  237. PyFunceble/query/dns/__init__.py +1 -1
  238. PyFunceble/query/dns/nameserver.py +1 -1
  239. PyFunceble/query/dns/query_tool.py +1 -1
  240. PyFunceble/query/dns/resolver.py +1 -1
  241. PyFunceble/query/http_status_code.py +1 -1
  242. PyFunceble/query/netinfo/__init__.py +1 -1
  243. PyFunceble/query/netinfo/address.py +1 -1
  244. PyFunceble/query/netinfo/base.py +1 -1
  245. PyFunceble/query/netinfo/hostbyaddr.py +1 -1
  246. PyFunceble/query/record/__init__.py +1 -1
  247. PyFunceble/query/record/base.py +1 -1
  248. PyFunceble/query/record/dns.py +1 -1
  249. PyFunceble/query/record/whois.py +1 -1
  250. PyFunceble/query/requests/__init__.py +1 -1
  251. PyFunceble/query/requests/adapter/__init__.py +1 -1
  252. PyFunceble/query/requests/adapter/base.py +1 -1
  253. PyFunceble/query/requests/adapter/http.py +1 -1
  254. PyFunceble/query/requests/adapter/https.py +7 -7
  255. PyFunceble/query/requests/requester.py +1 -1
  256. PyFunceble/query/whois/__init__.py +1 -1
  257. PyFunceble/query/whois/converter/__init__.py +1 -1
  258. PyFunceble/query/whois/converter/base.py +1 -1
  259. PyFunceble/query/whois/converter/digit2digits.py +2 -1
  260. PyFunceble/query/whois/converter/expiration_date.py +1 -1
  261. PyFunceble/query/whois/converter/month2unified.py +1 -1
  262. PyFunceble/query/whois/converter/registrar.py +1 -1
  263. PyFunceble/query/whois/query_tool.py +1 -1
  264. PyFunceble/sessions.py +1 -1
  265. PyFunceble/storage.py +5 -3
  266. PyFunceble/storage_facility.py +1 -1
  267. PyFunceble/utils/__init__.py +1 -1
  268. PyFunceble/utils/platform.py +1 -1
  269. PyFunceble/utils/profile.py +1 -1
  270. PyFunceble/utils/version.py +1 -1
  271. {PyFunceble_dev-4.2.6.dist-info → PyFunceble_dev-4.2.9.dist-info}/LICENSE +1 -1
  272. {PyFunceble_dev-4.2.6.dist-info → PyFunceble_dev-4.2.9.dist-info}/METADATA +46 -46
  273. PyFunceble_dev-4.2.9.dist-info/RECORD +282 -0
  274. {PyFunceble_dev-4.2.6.dist-info → PyFunceble_dev-4.2.9.dist-info}/WHEEL +1 -1
  275. PyFunceble_dev-4.2.6.dist-info/RECORD +0 -282
  276. {PyFunceble_dev-4.2.6.dist-info → PyFunceble_dev-4.2.9.dist-info}/entry_points.txt +0 -0
  277. {PyFunceble_dev-4.2.6.dist-info → PyFunceble_dev-4.2.9.dist-info}/top_level.txt +0 -0
@@ -5,6 +5,7 @@ Revises: 6f4729deaf03
5
5
  Create Date: 2021-12-04 23:52:11.861732
6
6
 
7
7
  """
8
+
8
9
  import sqlalchemy as sa
9
10
  from alembic import op
10
11
 
@@ -5,6 +5,7 @@ Revises: bef7bcaac3f2
5
5
  Create Date: 2020-12-23 02:26:21.647125
6
6
 
7
7
  """
8
+
8
9
  import sqlalchemy as sa
9
10
  from alembic import op
10
11
 
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -5,6 +5,7 @@ Revises:
5
5
  Create Date: 2020-08-15 20:12:26.768419
6
6
 
7
7
  """
8
+
8
9
  import sqlalchemy as sa
9
10
  from alembic import op
10
11
 
@@ -5,6 +5,7 @@ Revises: 3a4c55a9320d
5
5
  Create Date: 2020-12-16 19:09:41.212679
6
6
 
7
7
  """
8
+
8
9
  import sqlalchemy as sa
9
10
  from alembic import op
10
11
  from sqlalchemy.dialects import mysql
@@ -5,6 +5,7 @@ Revises: 35c79626ecb9
5
5
  Create Date: 2020-08-22 17:27:52.087506
6
6
 
7
7
  """
8
+
8
9
  from alembic import op
9
10
  from sqlalchemy.dialects import mysql
10
11
 
@@ -5,6 +5,7 @@ Revises: d8893cd406db
5
5
  Create Date: 2020-12-07 12:33:43.650514
6
6
 
7
7
  """
8
+
8
9
  import sqlalchemy as sa
9
10
  from alembic import op
10
11
  from sqlalchemy.dialects import mysql
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -5,6 +5,7 @@ Revises:
5
5
  Create Date: 2022-12-28 07:20:50.310072
6
6
 
7
7
  """
8
+
8
9
  import sqlalchemy as sa
9
10
  from alembic import op
10
11
 
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -51,7 +51,9 @@ License:
51
51
  """
52
52
 
53
53
  import os
54
+ import secrets
54
55
  from typing import Any
56
+ from warnings import warn
55
57
 
56
58
  import PyFunceble.storage
57
59
  from PyFunceble.dataset.base import DatasetBase
@@ -66,8 +68,8 @@ class UserAgentDataset(DatasetBase):
66
68
  STORAGE_INDEX: str = "USER_AGENTS"
67
69
  DOWNLOADER: UserAgentsDownloader = UserAgentsDownloader()
68
70
 
69
- prefered_browser: str = "chrome"
70
- prefered_platform: str = "linux"
71
+ preferred_browser: str = "chrome"
72
+ preferred_platform: str = "linux"
71
73
 
72
74
  def __init__(self) -> None:
73
75
  self.source_file = os.path.join(
@@ -76,10 +78,18 @@ class UserAgentDataset(DatasetBase):
76
78
  )
77
79
 
78
80
  def __contains__(self, value: Any) -> bool:
81
+ content = self.get_content()
82
+
83
+ if "@modern" in content:
84
+ return value in self.get_content()["@modern"]
79
85
  return value in self.get_content()
80
86
 
81
87
  def __getattr__(self, value: Any) -> dict:
82
88
  if value in self:
89
+ content = self.get_content()
90
+
91
+ if "@modern" in content:
92
+ return self.get_content()["@modern"][value]
83
93
  return self.get_content()[value]
84
94
 
85
95
  return dict() # pylint: disable=use-dict-literal
@@ -87,11 +97,11 @@ class UserAgentDataset(DatasetBase):
87
97
  def __getitem__(self, value: Any) -> dict:
88
98
  return self.__getattr__(value)
89
99
 
90
- def set_prefered(
100
+ def set_preferred(
91
101
  self, browser_short_name: str, platform: str
92
102
  ) -> "UserAgentDataset":
93
103
  """
94
- Sets the prefered browser to work with.
104
+ Sets the preferred browser to work with.
95
105
 
96
106
  :param browser_short_name:
97
107
  The name of the browser to select.
@@ -110,11 +120,38 @@ class UserAgentDataset(DatasetBase):
110
120
  f"({platform!r}) is not supported."
111
121
  )
112
122
 
113
- self.prefered_browser = browser_short_name.lower()
114
- self.prefered_platform = platform.lower()
123
+ self.preferred_browser = browser_short_name.lower()
124
+ self.preferred_platform = platform.lower()
115
125
 
116
126
  return self
117
127
 
128
+ # @deprecated("TODO: Soon we should be able to do this...")
129
+ def set_prefered(
130
+ self, browser_short_name: str, platform: str
131
+ ) -> "UserAgentDataset":
132
+ """
133
+ Sets the preferred browser to work with.
134
+
135
+ :param browser_short_name:
136
+ The name of the browser to select.
137
+ :pram platform:
138
+ The name of the platform to select.
139
+
140
+ :raise TypeError:
141
+ When the given :code:`name` is not a :py:class:`str`.
142
+ :raise ValueError:
143
+ When the given :code:`value` is not supported.
144
+ """
145
+
146
+ warn(
147
+ "The set_prefered() method is deprecated and will be removed in future "
148
+ " releases. Please consider using the set_preferred() method instead.",
149
+ DeprecationWarning,
150
+ stacklevel=2,
151
+ )
152
+
153
+ return self.set_preferred(browser_short_name, platform)
154
+
118
155
  def is_supported_browser(self, browser_short_name: str) -> bool:
119
156
  """
120
157
  Checks if the given browser is supported.
@@ -178,9 +215,14 @@ class UserAgentDataset(DatasetBase):
178
215
  ):
179
216
  return PyFunceble.storage.CONFIGURATION.user_agent.custom
180
217
 
181
- self.set_prefered(
218
+ self.set_preferred(
182
219
  PyFunceble.storage.CONFIGURATION.user_agent.browser,
183
220
  PyFunceble.storage.CONFIGURATION.user_agent.platform,
184
221
  )
185
222
 
186
- return self[self.prefered_browser][self.prefered_platform]
223
+ result = self[self.preferred_browser][self.preferred_platform]
224
+
225
+ if isinstance(result, (list, tuple)):
226
+ return secrets.choice(result)
227
+
228
+ return result
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -36,7 +36,7 @@ License:
36
36
  ::
37
37
 
38
38
 
39
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
39
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
40
40
 
41
41
  Licensed under the Apache License, Version 2.0 (the "License");
42
42
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ License:
35
35
  ::
36
36
 
37
37
 
38
- Copyright 2017, 2018, 2019, 2020, 2022, 2023 Nissar Chababy
38
+ Copyright 2017, 2018, 2019, 2020, 2022, 2023, 2024 Nissar Chababy
39
39
 
40
40
  Licensed under the Apache License, Version 2.0 (the "License");
41
41
  you may not use this file except in compliance with the License.