diff --git a/.github/workflows/playwright.yml b/.github/workflows/test.yml similarity index 100% rename from .github/workflows/playwright.yml rename to .github/workflows/test.yml diff --git a/_posts/2026-03-25-blackpythondevs-corporate-sponsorship.md b/_posts/2026-03-25-blackpythondevs-corporate-sponsorship.md new file mode 100644 index 0000000..a8a56d2 --- /dev/null +++ b/_posts/2026-03-25-blackpythondevs-corporate-sponsorship.md @@ -0,0 +1,16 @@ +--- +author: + - Jay Miller +date: 2026-03-25 +description: Black Python Devs is happy to announce that Anaconda has made the decision to become a corporate sponsor of Black Python Dves +featured_image: /assets/images/bpd-x-anaconda-2026.webp +title: Anaconda is now a corporate sponsor of Black Python Devs +--- + +We're happy to announce That anaconda has agreed to become a corporate sponsor of black Python Devs. + +Our corporate sponsorships program allows Anaconda to promote job opportunities directly in our discord, promotion of Anaconda campaigns, events, and initiatives to our community as well as the ability to host dedicated events for BPD Leaders and members. Lastly, Anacon + +This sponsorship will help secure infrastructure funding for black Python devs operate in 2026 and beyond. Our infrastructure budget is the resource that supports subscription and event costs. It is not intended (but potentially can be used) to sponsor events as we hope our partnerships with our sponsors will help them to establish relationships with the communities and leaders that we support. + +Thank you to Anaconda on this decision to sponsor the Python Community and Black Python Devs. diff --git a/assets/images/bpd-x-anaconda-2026.webp b/assets/images/bpd-x-anaconda-2026.webp new file mode 100644 index 0000000..59b168b Binary files /dev/null and b/assets/images/bpd-x-anaconda-2026.webp differ diff --git a/pyproject.toml b/pyproject.toml index 1449edd..3a2ab08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ dependencies = [ "pyyaml", ] -[project.optional-dependencies] +[dependency-groups] dev = [ "pre-commit", "typer", diff --git a/tests/conftest.py b/tests/conftest.py index 46d107c..e41bdb1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,7 +4,6 @@ "", "blog", "about.html", - "bpd-events", "support.html", ] diff --git a/tests/test.py b/tests/test.py index c07abb0..0e8a3dc 100644 --- a/tests/test.py +++ b/tests/test.py @@ -13,16 +13,13 @@ def __init__(self): super().__init__() self.title = "" self._in_title = False - self.lang = None self.meta_description = None self.links = [] self.classes = [] def handle_starttag(self, tag, attrs): attrs_dict = dict(attrs) - if tag == "html": - self.lang = attrs_dict.get("lang") - elif tag == "title": + if tag == "title": self._in_title = True elif tag == "meta" and attrs_dict.get("name") == "description": self.meta_description = attrs_dict.get("content", "") @@ -72,7 +69,6 @@ def built_site(): "": "index.html", "blog": "blog/index.html", "about.html": "about.html", - "bpd-events": "bpd-events/page.html", "support.html": "support.html", } @@ -84,26 +80,6 @@ def test_destination(loaded_route: str, built_site: pathlib.Path) -> None: assert output_file.exists(), f"Expected output file not found: {output_file}" -LANG_ROUTES = { - "/": "index.html", - "/about.html": "about.html", - "/bpd-events/": "bpd-events/page.html", - "/support.html": "support.html", - "/blog/": "blog/index.html", -} - - -@pytest.mark.parametrize("route, file_path", list(LANG_ROUTES.items())) -def test_headers_in_language( - built_site: pathlib.Path, route: str, file_path: str -) -> None: - """Check that each page has lang='en' on the html element.""" - parsed = parse_html(built_site / file_path) - assert ( - parsed.lang == "en" - ), f"Expected lang='en' on {route}, got lang='{parsed.lang}'" - - @pytest.mark.parametrize( "title, file_path", ( diff --git a/uv.lock b/uv.lock index f7dde34..819cbce 100644 --- a/uv.lock +++ b/uv.lock @@ -2,9 +2,6 @@ version = 1 revision = 3 requires-python = ">=3.13" -[options] -prerelease-mode = "allow" - [[package]] name = "annotated-doc" version = "0.0.4" @@ -16,14 +13,14 @@ wheels = [ [[package]] name = "anyio" -version = "4.12.1" +version = "4.13.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/96/f0/5eb65b2bb0d09ac6776f2eb54adee6abe8228ea05b20a5ad0e4945de8aac/anyio-4.12.1.tar.gz", hash = "sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703", size = 228685, upload-time = "2026-01-06T11:45:21.246Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl", hash = "sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c", size = 113592, upload-time = "2026-01-06T11:45:19.497Z" }, + { url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" }, ] [[package]] @@ -57,7 +54,7 @@ dependencies = [ { name = "render-engine", extra = ["cli"] }, ] -[package.optional-dependencies] +[package.dev-dependencies] dev = [ { name = "pre-commit" }, { name = "pytest" }, @@ -68,15 +65,18 @@ dev = [ [package.metadata] requires-dist = [ - { name = "pre-commit", marker = "extra == 'dev'" }, - { name = "pytest", marker = "extra == 'dev'" }, - { name = "python-frontmatter", marker = "extra == 'dev'" }, { name = "pyyaml" }, { name = "render-engine", extras = ["cli"], specifier = ">=2026.3.4a2" }, - { name = "rich", marker = "extra == 'dev'" }, - { name = "typer", marker = "extra == 'dev'" }, ] -provides-extras = ["dev"] + +[package.metadata.requires-dev] +dev = [ + { name = "pre-commit" }, + { name = "pytest" }, + { name = "python-frontmatter" }, + { name = "rich" }, + { name = "typer" }, +] [[package]] name = "certifi" @@ -505,21 +505,21 @@ wheels = [ [[package]] name = "render-engine" -version = "2026.3.4a2" +version = "2026.3.4a3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jinja2" }, { name = "more-itertools" }, { name = "pluggy" }, { name = "python-dateutil" }, + { name = "python-frontmatter" }, { name = "python-slugify" }, { name = "render-engine-markdown" }, - { name = "render-engine-parser" }, { name = "rich" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/99/21/3eca626662d37a3062af6e5560f0ee1f347104f37802a7b58cc6fa177d6a/render_engine-2026.3.4a2.tar.gz", hash = "sha256:3b665b963fc809ab91d79567dde7c27b3c82a236c6beb912d5b2067b271b799c", size = 11905500, upload-time = "2026-03-15T23:42:20.198Z" } +sdist = { url = "https://files.pythonhosted.org/packages/96/9c/df1045b367874b2c3f68a0dd7640db6cc017dc5d33a74c1a50e7d5e1d3a2/render_engine-2026.3.4a3.tar.gz", hash = "sha256:0066e1644e7df0f3889a92fef5010ca032eb908941a9524130bfbffe6a26d03f", size = 11906672, upload-time = "2026-03-23T02:04:09.96Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/75/66/394fbbfc243179a44961a71d4688ace852fba1617e3c95404d4a1ab2b2f7/render_engine-2026.3.4a2-py3-none-any.whl", hash = "sha256:548348fba45d0ac81288d125609ee8c298bef6a1e941f5b11f38781a422a5d5d", size = 36898, upload-time = "2026-03-15T23:42:18.478Z" }, + { url = "https://files.pythonhosted.org/packages/10/88/9fae87234ed2b155f8b5beb181b6c19ecab06fe48b38ad3d6b7af79920a6/render_engine-2026.3.4a3-py3-none-any.whl", hash = "sha256:79aaacdd1baaf4b9e6a787300fd53687a87472c03c5f60973d7c2f2e4f40e5ec", size = 38124, upload-time = "2026-03-23T02:04:07.932Z" }, ] [package.optional-dependencies] @@ -586,15 +586,15 @@ wheels = [ [[package]] name = "rich" -version = "14.3.3" +version = "14.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b3/c6/f3b320c27991c46f43ee9d856302c70dc2d0fb2dba4842ff739d5f46b393/rich-14.3.3.tar.gz", hash = "sha256:b8daa0b9e4eef54dd8cf7c86c03713f53241884e814f4e2f5fb342fe520f639b", size = 230582, upload-time = "2026-02-19T17:23:12.474Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/84/4831f881aa6ff3c976f6d6809b58cdfa350593ffc0dc3c58f5f6586780fb/rich-14.3.1.tar.gz", hash = "sha256:b8c5f568a3a749f9290ec6bddedf835cec33696bfc1e48bcfecb276c7386e4b8", size = 230125, upload-time = "2026-01-24T21:40:44.847Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/14/25/b208c5683343959b670dc001595f2f3737e051da617f66c31f7c4fa93abc/rich-14.3.3-py3-none-any.whl", hash = "sha256:793431c1f8619afa7d3b52b2cdec859562b950ea0d4b6b505397612db8d5362d", size = 310458, upload-time = "2026-02-19T17:23:13.732Z" }, + { url = "https://files.pythonhosted.org/packages/87/2a/a1810c8627b9ec8c57ec5ec325d306701ae7be50235e8fd81266e002a3cc/rich-14.3.1-py3-none-any.whl", hash = "sha256:da750b1aebbff0b372557426fb3f35ba56de8ef954b3190315eb64076d6fb54e", size = 309952, upload-time = "2026-01-24T21:40:42.969Z" }, ] [[package]]