Pyfunceble

Latest version: v4.2.28

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

4.2.27

What has been fixed ?

For End-Users

- We mitigated some downstream vulnerabilities by changing our requirements.
- When testing domains, you may have encoutered unstable results when testing agains the HTTP status code. This has been fixed. ([358](https://github.com/funilrys/PyFunceble/issues/358))
- We are now showing the `Registrar` column only if the option is activated. ([369](https://github.com/funilrys/PyFunceble/issues/369))

For Developers

- Since the release of Python 3.12, we are now using timezone-aware datetime objects.

What has been improved?

For End-Users

- The handling of `INVALID` subjects has been improved. ([333](https://github.com/funilrys/PyFunceble/issues/333))
- The handling of database disconnects has been improved. ([346](https://github.com/funilrys/PyFunceble/issues/346))
- The `000webhostapp.com` SPECIAL rulesets. ([359](https://github.com/funilrys/PyFunceble/issues/359))
- When using the CI features, you can now use the following flags to skip tests:
- `[skip ci]`
- `[ci skip]`
- `[no ci]`
- `[pyfunceble skip]`
- `[pyfunceble-skip]`
- `[skip-pyfunceble]`
- `[skip pyfunceble]`

For Developers

- The documentation and all RST formatted files have been switched to Markdown.
- The user-agent query system has been improved to allow us a weekly update of the user-agent list.
- The checkers can now have access to the WHOIS data from the locally stored database - if needed.

What has been removed?

For End-Users

nothing.

For Developers

nothing.

For Beta Testers

- The legacy collection API has been removed. You should contact [funilrys](https://github.com/funilrys) for more information.

What is new?

For End-Users

- The support of Python 3.12.
- The documentation can now be found at [docs.pyfunceble.com](https://docs.pyfunceble.com).
- It is now possible to use the CI features without any git integration.

A standalone CI engine without any git related commands and integration has been implemented.
It can be activated by setting the `PYFUNCEBLE_STANDALONE_CI` environment variable.

When active, operators, can define:

1. A maximal execution time, through the
`cli_testing.ci.max_exec_minutes` configuration key - or its CLI
conterpart.

2. (shell) Commands to execute at the end, through the
`cli_testing.ci.end_command` configuration key - or its CLI
counterpart.

- The IPv6 private ranges has been changed by the Python Core Team. We are now using the new ranges.
- You can now bypass the CI bypass flags by use the `PYFUNCEBLE_BYPASS_BYPASS` environment variable.
- The `.zz.com.ua` SPECIAL rulesets. ([344](https://github.com/funilrys/PyFunceble/issues/344))
- The `.web.app` SPECIAL rulesets. ([345](https://github.com/funilrys/PyFunceble/issues/344))
- The `.myhuaweicloudz.com` SPECIAL rulesets. ([345](https://github.com/funilrys/PyFunceble/issues/344))
- The `.glitchz.me` SPECIAL rulesets. ([345](https://github.com/funilrys/PyFunceble/issues/344))
- The `s3.ap-south-1.amazonaws.com` SPECIAL rulesets. ([345](https://github.com/funilrys/PyFunceble/issues/344))
- The `.sz.id` SPECIAL rulesets. ([345](https://github.com/funilrys/PyFunceble/issues/344))
- The `u.pcloud.com` SPECIAL rulesets. ([345](https://github.com/funilrys/PyFunceble/issues/344))
- The `.translate.goog` SPECIAL rulesets. ([345](https://github.com/funilrys/PyFunceble/issues/344))

For Developers

- The `production-pyfunceble`, `public-suffix-pyfunceble` and `iana-pyfunceble` CLI commands are now ONLY available to the developers who are installing with the `PYFUNCEBLE_DEVTOOLS` and `PYFUNCEBLE_HELPTOOLS` environment variables set to `True`. ([328](https://github.com/funilrys/PyFunceble/issues/328))

For Beta Testers

- We are testing a new platform. You should contact [funilrys](https://github.com.funilrys) for more information.

---

Contributors

Thanks to those awesome people who contributed to this release!

- Josenilson Ferreira da SIlva - [Nilsonfsilva](https://github.com/Nilsonfsilva)
- spirillen - [spirillen](https://github.com/spirillen)

---

**Full Changelog**: https://github.com/funilrys/PyFunceble/compare/4.2.0...v4.2.27

4.2.0

What has been fixed ?

- We mitigated some cryptography vulnerabilities (CVE-2023-0286 & CVE-2023-23931) my changing the minimun required version.

- A fatal error when no nameservers are configured by the hosting system. The default DNS Servers (when none are defined at OS/Configuration level) are now the Quad9 unsecured one. ([328](https://github.com/funilrys/PyFunceble/issues/328))
- The `git.io` service is not deprecated. All URLs were Updated. ([341](https://github.com/funilrys/PyFunceble/issues/341))

What has been improved?

For End-Users

- The weebly.com SPECIAL rulesets. We now take down subdomains, that returns the 406 status code.

- The wordpress.com SPECIAL rulesets. ([321](https://github.com/funilrys/PyFunceble/issues/321))

For Developers

- We now support SQLAlchemy v2.x+.
- All SPECIAL rule handlers now share a set of methods to allow us to unify to way we go through our SPECIAL rulesets.
- All converters can now be used without initialization of the subject. Just use the `convert` method, and you are good to go!

What has been removed?

- The support of any Python version lower that 3.8 (`<=3.7`).

What is new?

For End-Users

- The support of Python 3.11.
- The support of PostgreSQL.

- The "subject-switch" SPECIAL rulesets. ([185](https://github.com/funilrys/PyFunceble/issues/185))
- The "changeip" SPECIAL rulesets. ([311](https://github.com/funilrys/PyFunceble/issues/311))
- The imgur.com SPECIAL rulesets. ([319](https://github.com/funilrys/PyFunceble/issues/319))
- The eToxic SPECIAL rulesets. ([334](https://github.com/funilrys/PyFunceble/issues/334))
- An `ips` output subdirectory has been added. IPs are now "first-class citizens" among the plain text output format-s. ([268](https://github.com/funilrys/PyFunceble/issues/334))

For Developers

- Testing with `pytest` now works out of the box. ([328](https://github.com/funilrys/PyFunceble/issues/328))

---

Contributors

Thanks to those awesome people who contributed to this release!

- Josenilson Ferreira da SIlva - [Nilsonfsilva](https://github.com/Nilsonfsilva) | Nilsonfsilva
- smed79 - [smed79](https://github.com/smed79) | smed79
- spirilln - [spirillen](https://github.com/spirillen) | spirillen
- T145 - [T145](https://github.com/T145) | T145

4.1.3

:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:
:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:

Hello, World!

This is a maintenance release that provides some minor fixes regarding the handling of
several fatal errors.

Let the world know what you think or how you use PyFunceble with [PyFunceble](https://twitter.com/hashtag/pyfunceble) or [PyFunceble](https://twitter.com/pyfunceble) on Twitter :smile:!

I wish you all the best!

[funilrys](https://github.com/funilrys)

:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:

What was fixed ?

- A fatal error when an invalid YAML file is provided as a configuration file.
- A fatal error when a timeout is set to `0`.
- The requirements file for Windows users.

What was improved?

- The handling of errors produced by 2 of our dependencies.
- The handling of errors when using proxies.

What is new?

- The CLI help message now provide some basic examples.
- The CLI help message now provide some basic explanation about the argument "switch" mechanism.

---

Contributors

Thanks to those awesome people who contributed to this release!

- BigDargon - [bigdargon](https://github.com/bigdargon)
- Imre Kristoffer Eilertsen - [DandelionSprout](https://github.com/DandelionSprout)
- smed79 - [smed79](https://github.com/smed79)
- spirillen - [spirillen](https://github.com/spirillen)
- T145 - [T145](https://github.com/T145)

4.1.2

:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:
:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:

Hello, World!

This is maintenance release that provides some minor fixes regarding the handling of
non-UTF-8 characters and subjects without extensions (in some rare cases)

Let the world know what you think or how you use PyFunceble with [PyFunceble](https://twitter.com/hashtag/pyfunceble) or [PyFunceble](https://twitter.com/pyfunceble) on Twitter :smile:!

I wish you all the best!

[funilrys](https://github.com/funilrys)

:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:

What was fixed ?

- A fatal error when (in some rare cases) a subject without extension get through the requests handler.
- Issues regarding the handling of non UTF-8 characters.

---

Contributors

Thanks to those awesome people who contributed to this release!

- avatartw - [avatartw](https://github.com/avatartw)
- BigDargon - [bigdargon](https://github.com/bigdargon)
- spirillen - [spirillen](https://github.com/spirillen)

4.1.0

:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:
:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:

Hello, World!

This is a new release that provides a lot of new features, bug fixes and improvement.

In this release, the `dr.ag` and `altervista.org` domains will be checked against our set of SPECIAL rules. The syntax checker of PyFunceble was always following RFCs, but with this new release, it also accept some of the uncommon practices that can be found in the wild.

This release also bring registrar information among the provided datasets. Whether you use the Python API or the CLI, you can now read a `registrar` key or `Registrar` column that indicates where the domain is registrated. If you choose to actively use that feature, a TOP 10 list of registrar will be displayed at the end of your test sesssion.

Among other changes and new feature, the most important one may be the ability to instruct PyFunceble to use a global proxy or a specific one based on some set of rules that you can define within your configuration file. From now on, through this feature it is possible to test `.onion` alongside your normal test workflow - as example. You only have to instruct PyFunceble of the proxy it has to use and it will follow your order.

Let us know what you think or how you use PyFunceble with [PyFunceble](https://twitter.com/hashtag/pyfunceble) or [PyFunceble](https://twitter.com/pyfunceble) on Twitter :smile:!

I wish you all the best!

[funilrys](https://github.com/funilrys)

:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:

What was fixed ?

- A fatal error when a DNS name longer than 255 octets is given.
- The test of URL with scheme and port are no longer considered `INVALID`.
- All generated CSV file will be encoded in UTF-8.
- The version of `python-box`.

What was improved?

- The syntax checker used to only follow RFCs. It now tries to accept and implement real world practices.
- The handling of IPv6 format when we give an IPv6 as DNS server.
- The WHOIS record decoded is now case insensitive. This will allow us to catch more that we use to.
- The check agians the autocontinue and inactive dataset is now done only when they are activated by the user.
- Our "self-healing" process that tries to avoid false-positive response.
- The deployment of AUR packages is now safer and quicker.
- The documentation.

What is new?

- The ability to use proxies when testing subjects.
- The ability to define proxy rulesets.
- The ability to get/read the domain registrar.
- The ability to get the TOP10 registrar - at the end of a test session.
- The `--max-http-retries` argument.
- The `--*-lookup-only` arguments.
- The `--chancy` argument. (**WARNING:** Use at your own risk.)
- A URL test will check the status against the DNS server - first.
- The `dr.ag` SPECIAL rule.
- The `altervista.org` SPECIAL rule.
- A workaround against Y2K38 - until database vendors handle the problem.
- A way to automate CLI demos.

---

Contributors

Thanks to those awesome people who contributed to this release!

- avatartw - [avatartw](https://github.com/avatartw)
- Chris Griffith - [cdgriffith](https://github.com/cdgriffith)
- Mitchell Krog - [mitchellkrogza](https://github.com/mitchellkrogza)
- Fanboynz - [ryanbr](https://github.com/ryanbr)
- spirillen - [spirillen](https://github.com/spirillen)
- Haris Gušić - [veracioux](https://github.com/veracioux)

4.0.2

:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:

Hello, World!

This is a new release that does some housekeeping and adds a new SPECIAL rule.

In this release, the `fc2.com` domain will be checked against our set of SPECIAL rules, the `ascii` encoding is better handled and some minor issue were fixed.

Let us know what you think or how you use PyFunceble with [PyFunceble](https://twitter.com/hashtag/pyfunceble) or [PyFunceble](https://twitter.com/pyfunceble) on Twitter :smile:!

I wish you all the best!

:tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2::tada: :star2:

What was fixed ?

- A configuration upgrade issue.
- A DNS Resolver issue when null is decoded in incorrect URL.

What was improved?

- The handling of the `ascii` encoding - around the CLI.

What is new?

- The `fc2.com` SPECIAL rule.


---

Contributors

Thanks to those awesome people who contributed to this release!

- Imre Kristoffer Eilertsen - [DandelionSprout](https://github.com/DandelionSprout)
- Mitchell Krog - [mitchellkrogza](https://github.com/mitchellkrogza)
- spirillen - [spirillen](https://github.com/spirillen)
- T145 - [T145](https://github.com/T145)
- ZeroDot1 - [ZeroDot1](https://github.com/ZeroDot1)

Page 1 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.