summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore123
-rw-r--r--CHANGELOG11
-rw-r--r--setup.py44
3 files changed, 130 insertions, 48 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3a32806
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,123 @@
+.DS_Store
+
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+.hypothesis/
+.pytest_cache/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+.python-version
+
+# celery beat schedule file
+celerybeat-schedule
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# Patches
+*.patch
+
+# Emacs files
+*~
+\#*\# \ No newline at end of file
diff --git a/CHANGELOG b/CHANGELOG
index 518c6a8..cba16ee 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -18,6 +18,12 @@ supported.
3. Pickling a BeautifulSoup object. (Note that pickling a Tag
object can still cause an overflow.)
+* Replaced setup.py and setup.cfg with pyproject.toml. Beautiful Soup
+ packages now uses hatch as its build backend.
+
+* Added a tox.ini file to make it easier to run the test suite against all
+ supported versions of Python.
+
* Making a copy of a BeautifulSoup object no longer parses the
document again, which should improve performance significantly.
@@ -29,15 +35,12 @@ supported.
* Added unit tests for fuzz test cases created by third
parties. Some of these tests are skipped since they point
- to problems outside of Beautiful Soup; but this change
+ to problems outside of Beautiful Soup, but this change
puts them all in one convenient place.
* PageElement now implements the known_xml attribute. (This was technically
a bug, but it shouldn't be an issue in normal use.) [bug=2007895]
-* Added a tox.ini file to make it easier to run the test suite against all
- supported versions of Python.
-
= 4.12.0 (20230320)
* Introduced the .css property, which centralizes all access to
diff --git a/setup.py b/setup.py
deleted file mode 100644
index e96eca7..0000000
--- a/setup.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from setuptools import (
- setup,
- find_packages,
-)
-import sys
-
-from bs4 import __version__
-
-with open("README.md", "r") as fh:
- long_description = fh.read()
-
-setup(
- name="beautifulsoup4",
- version = __version__,
- author="Leonard Richardson",
- author_email='leonardr@segfault.org',
- url="https://www.crummy.com/software/BeautifulSoup/bs4/",
- download_url = "https://www.crummy.com/software/BeautifulSoup/bs4/download/",
- description="Screen-scraping library",
- python_requires='>=3.6.0',
- install_requires=[
- "soupsieve >1.2",
- ],
- tests_require=['pytest'],
- long_description=long_description,
- long_description_content_type="text/markdown",
- license="MIT",
- packages=['bs4', 'bs4/builder', 'bs4/tests'],
- # NOTE: Stuff like the documentation is included via MANIFEST.in
- extras_require = {
- 'lxml' : [ 'lxml'],
- 'html5lib' : ['html5lib'],
- },
- classifiers=["Development Status :: 5 - Production/Stable",
- "Intended Audience :: Developers",
- "License :: OSI Approved :: MIT License",
- "Programming Language :: Python",
- 'Programming Language :: Python :: 3',
- "Topic :: Text Processing :: Markup :: HTML",
- "Topic :: Text Processing :: Markup :: XML",
- "Topic :: Text Processing :: Markup :: SGML",
- "Topic :: Software Development :: Libraries :: Python Modules",
- ],
-)