Skip to content

Commit f145b11

Browse files
committed
Introduction of PyFunceble v4.0.0 (Blue Duckling)!
It's about time. It's not perfect, but stable enough. Everything has been reviewed or rewritten. What is important to note: - This version makes the PyFunceble Python Module more usable and independent from the configuration file. - Each test method can be individually disabled. - There is more control over some of the deep settings of PyFunceble. - Multiprocessing is now a default. There is no "single" and "multiprocessing" modes anymore. - We can now decode and test IPv4 that follows the CIDR notation. - You can now safely configure PyFunceble through the `.PyFunceble.overwrite.yaml` configuration file. ... and a lot more! Thanks to all contributors who contributed to the alpha and the beta versions. Contributors: - @DandelionSprout - @keczuppp - @mitchellkrogza - @spirillen - @Yuki2718 - @Zachinquarantine - @ZeroDot1
2 parents 1f6fb58 + dcf9fe6 commit f145b11

File tree

662 files changed

+64285
-33836
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

662 files changed

+64285
-33836
lines changed

.PyFunceble_production.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ generate_json: False
4242
header_printed: False
4343
# Tell to the system to use the historical sorting instead of the alphabetical sorting.
4444
hierarchical_sorting: False
45-
# Set the server to call to get the whois referer of a given element.
45+
# Set the server to call to get the whois referrer of a given element.
4646
iana_whois_server: whois.iana.org
4747
# Tell to the system to convert all domain to IDNA if possible.
4848
idna_conversion: False
@@ -179,7 +179,7 @@ outputs:
179179
percentage: percentage.txt
180180
whois: whois.json
181181
date_format: date_format.json
182-
no_referer: no_referer.json
182+
no_referrer: no_referrer.json
183183

184184
# This is the main directory which we call output/ in all our communication.
185185
parent_directory: output/
@@ -283,12 +283,12 @@ http_codes:
283283

284284
links:
285285
api_date_format: "https://pyfunceble.funilrys.com/api/date-format"
286-
api_no_referer: "https://pyfunceble.funilrys.com/api/no-referer"
287-
config: "https://raw.githubusercontent.com/funilrys/PyFunceble/master/.PyFunceble_production.yaml"
288-
dir_structure: "https://raw.githubusercontent.com/funilrys/PyFunceble/master/dir_structure_production.json"
286+
api_no_referrer: "https://pyfunceble.funilrys.com/api/no-referrer"
287+
config: "https://raw.githubusercontent.com/funilrys/PyFunceble/dev/.PyFunceble_production.yaml"
288+
dir_structure: "https://raw.githubusercontent.com/funilrys/PyFunceble/dev/dir_structure_production.json"
289289
iana: "https://raw.githubusercontent.com/PyFunceble/iana/master/iana-domains-db.json"
290290
ipv4_reputation: "https://reputation.alienvault.com/reputation.data"
291291
psl: "https://raw.githubusercontent.com/PyFunceble/public-suffix/master/public-suffix.json"
292292
repo: "https://github.com/funilrys/PyFunceble"
293-
requirements: "https://raw.githubusercontent.com/funilrys/PyFunceble/master/requirements.txt"
293+
requirements: "https://raw.githubusercontent.com/funilrys/PyFunceble/dev/requirements.txt"
294294
user_agents: "https://raw.githubusercontent.com/PyFunceble/user_agents/master/user_agents.json"

.coveragerc

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,22 @@ omit =
88
/home/travis/virtualenv/*
99
*.eggs/*
1010
*/distutils/*
11-
PyFunceble/config/*
1211

1312
# omit the following file
14-
PyFunceble/cli/dispatcher.py
15-
PyFunceble/cli/production.py
16-
PyFunceble/core/api.py
17-
PyFunceble/core/file.py
18-
PyFunceble/core/multiprocess.py
19-
PyFunceble/core/simple.py
20-
PyFunceble/downloader/*.py
21-
PyFunceble/engine/database/*
22-
PyFunceble/engine/auto_save.py
23-
PyFunceble/engine/mysql.py
24-
PyFunceble/engine/hashes_tracker.py
25-
PyFunceble/helpers/download.py
26-
PyFunceble/lookup/requests.py
27-
PyFunceble/lookup/ipv4_reputation.py
28-
PyFunceble/output/clean.py
29-
PyFunceble/output/constructor.py
30-
PyFunceble/output/generate.py
31-
PyFunceble/output/logs.py
32-
PyFunceble/status/*
33-
PyFunceble/engine/ci/*
13+
PyFunceble/dataset/mariadb_base.py
14+
PyFunceble/dataset/*/mariadb.py
15+
PyFunceble/dataset/*/mysql.py
16+
PyFunceble/checker/availability/extra_rules.py
17+
PyFunceble/__init__.py
18+
PyFunceble/logger.py
19+
20+
PyFunceble/database/*
21+
22+
PyFunceble/cli/*
3423

3524
[report]
3625
# This should be False one we move into production
37-
skip_covered = True
26+
skip_covered = False
3827

3928
# Regexes for lines to exclude from consideration
4029
exclude_lines =
@@ -46,29 +35,32 @@ exclude_lines =
4635

4736
# Don't complain about missing debug-only code:
4837
def __repr__
49-
if self\.debug
5038

5139
# Don't complain if tests don't hit defensive assertion code:
5240
raise AssertionError
5341
raise NotImplementedError
5442

5543
# Don't complain if non-runnable code isn't run:
5644
if __name__ == .__main__.:
57-
if tcp is None:
5845

5946
# Don't complain for those blocks
60-
PyFunceble\.CONFIGURATION\.db_type == "mariadb"
61-
PyFunceble\.CONFIGURATION\.db_type in \["mariadb", "mysql"\]
47+
PyFunceble\.storage\.CONFIGURATION\.cli_testing\.db_type == "mariadb"
48+
PyFunceble\.storage\.CONFIGURATION\.cli_testing\.db_type == "mysql"
6249

6350
# Don't complain about those.
64-
_json
65-
_mysql
66-
_sqlite
67-
PyFunceble\.Logger\(\)
68-
Logger\(\)
51+
to_json\(
52+
_mysql\(
53+
_mariadb\(
54+
55+
PyFunceble\.facility\.Logger\.
56+
57+
# Manual handling of imports.
58+
except\sModuleNotFoundError\:
59+
except\sImportError:
6960

7061

7162
ignore_errors = True
63+
fail_under = 70
7264

7365
[html]
7466
directory = coverage_html_report

.coveralls.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
repo_token: Hd7Xk9s1LwF92pHdKwXcITzuXzzKpcbbF

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ patreon: # Replace with a single Patreon username
55
open_collective: # Replace with a single Open Collective username
66
ko_fi: funilrys # Replace with a single Ko-fi username
77
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8-
custom: # Replace with a single custom sponsorship URL
8+
custom: [https://www.paypal.me/funilrys] # Replace with a single custom sponsorship URL
Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,46 @@
11
---
22
name: Bug report
3-
about: Create a report to help us improve
3+
about: Create a bug report to help us improve and fix undocumented or unknown issues.
4+
title: "BUG: "
5+
labels: bug
6+
assignees: funilrys
47
---
58

6-
## Bug description
7-
A clear and concise description of what the bug is.
9+
## Description
810

9-
## Modifications under `.PyFunceble.yaml`
11+
<!-- A clear description of what the bug is. -->
1012

11-
A clear representation of what you changed.
13+
## Configuration
14+
15+
<!-- A clear representation of what you changed into the `.PyFunceble.yaml` and/or what you put into your `.PyFunceble.overwrite.yaml` file. -->
1216

1317
## Reproduction
1418

15-
Steps to reproduce the behavior:
16-
1. Get '...'
17-
2. Run with '...' arguments
18-
4. See error
19+
<!-- A clear description of the steps to follow to reproduce the behavior. -->
20+
21+
<!--
22+
1.
23+
2.
24+
3.
25+
4.
26+
-->
1927

2028
## Expected behavior
21-
A clear and concise description of what you expected to happen.
29+
30+
<!-- A clear and concise description of what you expected to happen. -->
2231

2332
## Screenshots
24-
If applicable, add screenshots to help explain your problem.
33+
34+
<!-- If applicable, add screenshots to help explain your problem. -->
2535

2636
## Versions
2737

28-
**OS:** for example Arch Linux (5.0.5-arch1-1-ARCH)
29-
**Python Version:** for example 3.8.5
30-
**PyFunceble Version:** for example 3.3.0
38+
**OS:** <!-- for example Arch Linux (5.0.5-arch1-1-ARCH) -->
39+
40+
**Python Version:** <!-- for example 3.8.5 -->
41+
42+
**PyFunceble Version:** <!-- output of: pyfunceble -v -->
3143

3244
## Additional context
33-
Add any other context about the problem here.
45+
46+
<!-- Add any other context about the problem here. -->

.github/ISSUE_TEMPLATE/config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
blank_issues_enabled: true
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
name: Documentation
3+
about: Create a report to help us improve the documentation.
4+
title: 'DOC: '
5+
labels: documentation
6+
assignees: funilrys
7+
---
8+
9+
## Description
10+
11+
<!-- A clear description of the part that is missing or not easy to understand. -->
12+
13+
## Suggestion / Improvement
14+
15+
<!-- A clear description of your suggestion and what you would like to improve -->
Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
11
---
22
name: Feature request
3-
about: Suggest an idea for this project
3+
about: Suggest a feature or an idea for this project.
4+
title: 'FEATURE: '
5+
labels: features, enhancement
6+
assignees: funilrys
47
---
58

6-
**Is your feature request related to a problem? Please describe.**
7-
A clear and concise description of what the problem is. Ex. I'm always frustrated when ...
9+
## Description
810

9-
**Describe the solution you'd like**
10-
A clear and concise description of what you want to happen.
11+
<!-- A clear description of the feature you wish PyFunceble had. -->
12+
<!-- Example: I'm always frustrated when ... -->
1113

12-
**Describe alternatives you've considered**
13-
A clear and concise description of any alternative solutions or features you've considered.
1414

15-
**Additional context**
16-
Add any other context or screenshots about the feature request here.
15+
## Possible Solution
16+
17+
<!-- A clear description of the solution that you'd like. -->
18+
19+
## Considered Alternative
20+
21+
<!-- A clear description of any alternative solutions or features you've considered. -->
22+
23+
## Additional context
24+
25+
<!-- A clear description of any other context or screenshots about your feature request. -->

.github/ISSUE_TEMPLATE/help.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
name: Help Wanted
3+
about: Ask for help.
4+
title: "HELP: "
5+
labels: help wanted
6+
assignees: funilrys
7+
---
8+
9+
## Description
10+
11+
<!-- A clear description of what you need help with. -->

0 commit comments

Comments
 (0)