Skip to content

Add tests for Issue #493: PDF output with linewidth=0 #626

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 17 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions Downloads/basemap-develop/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto eol=lf

# Explicitly declare text files you want to always be normalised and
# converted to native line endings on checkout.
*.py text
*.pyx text

# Denote all files that are truly binary and should not be modified.
*.bin binary
*.dat binary
*.dbf binary
*.dem binary
*.gz binary
*.jpg binary
*.nc binary
*.shp binary
*.shx binary
138 changes: 138 additions & 0 deletions Downloads/basemap-develop/.github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
name: Build

on:
push:
paths:
- ".github/workflows/**"
- "packages/basemap/**"
- "packages/basemap_data/**"
- "packages/basemap_data_hires/**"
pull_request:
paths:
- ".github/workflows/**"
- "packages/basemap/**"
- "packages/basemap_data/**"
- "packages/basemap_data_hires/**"
workflow_dispatch:

jobs:
build_data:
name: Build data packages
strategy:
matrix:
package: [basemap_data, basemap_data_hires]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.9"

- name: Build sdist and wheels
run: |
cd packages/${{ matrix.package }}
python -m pip install build wheel
python -m build --sdist --wheel

- uses: actions/upload-artifact@v4
with:
path: |
packages/${{ matrix.package }}/dist/*.tar.gz
packages/${{ matrix.package }}/dist/*.whl
name: dist-${{ matrix.package }}

build_basemap:
name: Build basemap package (${{ matrix.os }})
needs: [build_data]
strategy:
matrix:
os: [ubuntu-22.04, windows-2019, macos-13, macos-14]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.9"

- name: Build sdist
if: matrix.os == 'ubuntu-22.04'
run: |
cd packages/basemap
python -m pip install build
python -m build --sdist

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS: "native"
CIBW_BUILD: "cp39* cp310* cp311* cp312* cp313*"
CIBW_BUILD_VERBOSITY: 1
CIBW_SKIP: "*-musllinux_*"
CIBW_BEFORE_ALL: "python {project}/.github/workflows/run_before_all.py"
CIBW_TEST_EXTRAS: "test"
CIBW_TEST_COMMAND: "python -m pytest {project}/packages/basemap"
CIBW_ENVIRONMENT: >-
GEOS_VERSION="3.6.5"
GEOS_DIR="$(pwd)/extern"
GEOS_NJOBS=4
PIP_PREFER_BINARY=1
PYTHONUNBUFFERED=1
LD_LIBRARY_PATH="${GEOS_DIR}/lib"
# LD_LIBRARY_PATH in environment is needed by
# auditwheel (Linux) and delocate (MacOS).
with:
package-dir: "packages/basemap"
output-dir: "packages/basemap/dist"

- uses: actions/upload-artifact@v4
with:
path: |
packages/basemap/dist/*.tar.gz
packages/basemap/dist/*.whl
name: dist-basemap-${{ matrix.os }}

check:
name: Check packages
needs: [build_data, build_basemap]
runs-on: ubuntu-22.04
steps:
- uses: actions/download-artifact@v4
with:
path: dist
pattern: "dist-*"
merge-multiple: true

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.9"

- name: Check packages with twine
run: |
python -m pip install twine
python -m twine check dist/*.tar.gz
python -m twine check dist/*.whl

upload:
name: Upload packages
needs: [build_data, build_basemap, check]
runs-on: ubuntu-22.04
environment: PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/download-artifact@v4
with:
path: dist
pattern: "dist-*"
merge-multiple: true

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_TOKEN }}
repository-url: ${{ secrets.PYPI_REPOSITORY_URL }}
skip-existing: true
37 changes: 37 additions & 0 deletions Downloads/basemap-develop/.github/workflows/run_before_all.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#! /usr/bin/env python
"""Helper script to be run by `cibuildwheel` as `before_all` step."""

import os
import sys

HERE = os.path.abspath(__file__)
ROOT = os.path.dirname(os.path.dirname(os.path.dirname(HERE)))
sys.path.insert(0, os.path.join(ROOT, "packages", "basemap"))
import utils # noqa: E402 # pylint: disable=imports


def main():
"""Build the GEOS library based on parsed environment variables."""

geos_version = os.environ.get("GEOS_VERSION", None)
if geos_version is None:
raise ValueError("Undefined environment variable GEOS_VERSION")

geos_dir = os.environ.get("GEOS_DIR", None)
if geos_dir is None:
raise ValueError("Undefined environment variable GEOS_DIR")

geos_njobs = int(os.environ.get("GEOS_NJOBS", 1))

# pylint: disable=consider-using-f-string
print("Running before_all script with the following settings:")
print("GEOS_DIR: {0}".format(geos_dir))
print("GEOS_VERSION: {0}".format(geos_version))
print("GEOS_NJOBS: {0}".format(geos_njobs))

utils.GeosLibrary(geos_version).build(geos_dir, njobs=geos_njobs)
return 0


if __name__ == "__main__":
sys.exit(main())
40 changes: 40 additions & 0 deletions Downloads/basemap-develop/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
.eggs
build
dist
*.egg-info
*.pyc
*.pyd
*.so

htmlcov
.cache
.coverage
.pytest_cache

# File manager files.
.gdb_history
.DS_Store
.DS_Store?
ehthumbs.db
Icon?
Thumbs.db

# Temporary files.
.#*
[#]*#
*~
*$
*.bak

# IDE files.
.project
.pydevproject
.vscode

# Things specific to this project.
*.pickle
examples/*.png
packages/basemap/doc/examples
packages/basemap/doc/users/installing.rst
packages/basemap/doc/_static/matplotlibrc
packages/basemap/doc/_templates/gallery.html
8 changes: 8 additions & 0 deletions Downloads/basemap-develop/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions Downloads/basemap-develop/.idea/basemap-develop.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions Downloads/basemap-develop/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Downloads/basemap-develop/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Downloads/basemap-develop/.idea/other.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading