Skip to content
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

Release 1.0.alpha.6 #246

Merged
merged 117 commits into from
Oct 16, 2023
Merged
Show file tree
Hide file tree
Changes from 109 commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
e182997
fix some type errors in views
cleder Jan 14, 2023
a8bc5b7
scaffold classes
cleder Jan 14, 2023
12e400e
scaffold classes
cleder Jan 14, 2023
cd12315
use Enum for altitudeMode #194
cleder Jan 14, 2023
9e61c5a
move tests to geometry_test fix enum #194
cleder Jan 14, 2023
8cba4b0
type annotate tests with infer-types
cleder Jan 14, 2023
fc82a4c
add script to remove unused # type: ignore comments
cleder Jan 15, 2023
0bf8de5
New _Geometry class as a base
cleder Jan 15, 2023
bbb0080
Finish geometry base class
cleder Jan 15, 2023
ca70308
fix type annotation
cleder Jan 15, 2023
4de8d7e
implement Point class
cleder Jan 15, 2023
ed18e77
raise KMLParseError #32 #84
cleder Jan 15, 2023
0ed6790
raise KMLParseError #32 #84 for invalid coordinates
cleder Jan 15, 2023
389a891
Test edge cases
cleder Jan 16, 2023
4893220
test write empty point
cleder Jan 16, 2023
c898640
add verbosity and precission to etree_element and to_string #217 #67 #98
cleder Jan 16, 2023
5c45cc7
add verbosity and precission to etree_element super calls #217 #67 #98
cleder Jan 16, 2023
09433fb
improve script to remove type ignores
cleder Jan 16, 2023
e7dfcc0
add kml schema #218
cleder Jan 22, 2023
b75aa4a
add __repr__ and __eq__ methods to base
cleder Jan 22, 2023
f60fcbd
weird error appending extended data
cleder Jan 22, 2023
658f731
fix tests for extended data
cleder Jan 22, 2023
5546ac9
move data tests
cleder Jan 22, 2023
6015316
delete remove_unused_type_ignores.py
cleder Jan 22, 2023
087bb07
add strict parameter #215
cleder Jan 22, 2023
3a2ab48
add strict in Baseclass #215
cleder Jan 22, 2023
a83f27d
add pygrep to pre-commit
cleder Jan 22, 2023
ffff745
yamllint all yaml files
cleder Jan 22, 2023
50deded
add coverage hint to contributing
cleder Jan 22, 2023
9727b58
implement linestring
cleder Jan 25, 2023
ab88ba4
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jan 30, 2023
e74483e
Merge pull request #219 from cleder/pre-commit-ci-update-config
cleder Jan 30, 2023
eaa1b03
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Feb 6, 2023
3305e35
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 6, 2023
a5f27e8
Merge pull request #220 from cleder/pre-commit-ci-update-config
cleder Feb 7, 2023
980fdd9
Replaced TypeError with warning log for invalid schema type
ericmassip Mar 11, 2023
662c821
Merge pull request #223 from ericmassip/develop
cleder Mar 14, 2023
e73399e
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Mar 27, 2023
344bd01
Merge pull request #224 from cleder/pre-commit-ci-update-config
cleder Mar 27, 2023
91160ff
move geometry tests into directory
cleder Apr 2, 2023
286d5f5
add ruff, fix types
cleder Apr 2, 2023
5d347fc
Create Polygon
cleder Apr 3, 2023
6ef5a07
update to mypy 1.1.1
cleder Apr 3, 2023
8cc5300
update black
cleder Apr 3, 2023
8958870
remove dead code
cleder Apr 3, 2023
f3b1c4d
make extrude and tessalate optional
cleder Apr 3, 2023
b099d96
polygon from string
cleder Apr 3, 2023
01fc1c8
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Apr 3, 2023
16408cf
WIP: MultiGeometry
cleder Apr 3, 2023
6bb9374
Merge pull request #225 from cleder/pre-commit-ci-update-config
cleder Apr 4, 2023
005c4ca
back to dev, bump version to alpha 5
cleder Jan 14, 2023
f1bdf23
qualify pygeoif classes with geo. prefix
cleder Jan 14, 2023
33d821a
Merge branch 'develop' into refactor-geometry
cleder Apr 4, 2023
cf87477
Added support for nested multigeometries with test coverage
ericmassip Apr 8, 2023
3d0a342
Merge pull request #226 from ericmassip/develop
cleder Apr 8, 2023
e78d346
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Apr 10, 2023
4231cee
Merge pull request #227 from cleder/pre-commit-ci-update-config
cleder Apr 14, 2023
69f8c17
document what is t be deprecated
cleder Apr 14, 2023
42b1c1c
back to dev, bump version to alpha 5
cleder Jan 14, 2023
c84d504
qualify pygeoif classes with geo. prefix
cleder Jan 14, 2023
bbf2eb7
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] May 1, 2023
2fd2814
Merge pull request #228 from cleder/pre-commit-ci-update-config
cleder May 2, 2023
8e0314d
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] May 8, 2023
cce9711
Merge pull request #229 from cleder/pre-commit-ci-update-config
cleder May 8, 2023
73a6789
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jun 12, 2023
41ee8d4
Merge pull request #230 from cleder/pre-commit-ci-update-config
cleder Jun 13, 2023
934e268
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jun 19, 2023
5ad2afb
Merge pull request #231 from cleder/pre-commit-ci-update-config
cleder Jun 19, 2023
3803647
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jul 3, 2023
1f07e6b
Merge pull request #232 from cleder/pre-commit-ci-update-config
cleder Jul 3, 2023
0428cee
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jul 17, 2023
b904bfc
Merge pull request #233 from cleder/pre-commit-ci-update-config
cleder Jul 17, 2023
75c74c3
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Jul 31, 2023
7a7580d
Merge pull request #234 from cleder/pre-commit-ci-update-config
cleder Aug 1, 2023
766ca2e
Bump actions/checkout from 3 to 4
dependabot[bot] Sep 4, 2023
6c18c3b
Merge pull request #235 from cleder/dependabot/github_actions/actions…
cleder Sep 5, 2023
c66e3ef
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Sep 11, 2023
58b111e
Bump codecov/codecov-action from 3 to 4
dependabot[bot] Sep 14, 2023
d433a43
Merge pull request #237 from cleder/dependabot/github_actions/codecov…
cleder Sep 15, 2023
aa54cbd
Merge pull request #236 from cleder/pre-commit-ci-update-config
cleder Sep 15, 2023
1ab5a2b
Merge branch 'develop' into refactor-geometry
cleder Oct 8, 2023
6795a39
remove unused ignores
cleder Oct 8, 2023
e0c071a
fix logger
cleder Oct 9, 2023
2d3888b
[pre-commit.ci] pre-commit autoupdate
pre-commit-ci[bot] Oct 9, 2023
b98a081
fix multi geometry
cleder Oct 14, 2023
54325eb
back to dev, bump version to alpha 5
cleder Jan 14, 2023
64b9591
qualify pygeoif classes with geo. prefix
cleder Jan 14, 2023
100b23d
Merge branch 'develop' into refactor-geometry
cleder Oct 14, 2023
9c01d63
use the new geometries in Placemark
cleder Oct 14, 2023
e478b0a
downgrade codecov to v3
cleder Oct 14, 2023
0023501
remove duplicated get_kwargs
cleder Oct 14, 2023
7901627
add deprecation warnings
cleder Oct 14, 2023
f8ff74c
Merge pull request #239 from cleder/refactor-geometry
cleder Oct 14, 2023
f719021
Merge branch 'develop' into pre-commit-ci-update-config
cleder Oct 14, 2023
6102b4c
Merge pull request #238 from cleder/pre-commit-ci-update-config
cleder Oct 14, 2023
233195e
update geometry tests
cleder Oct 14, 2023
4e77361
Merge branch 'refactor-geometry' into develop
cleder Oct 14, 2023
f35b942
Scaffold Track #242
cleder Oct 14, 2023
4fb9034
Implement gx:Track
cleder Oct 15, 2023
b8f475c
improve documentation for TrackItem
cleder Oct 15, 2023
6065dd7
remove unused types
cleder Oct 15, 2023
88f2cdf
Write MultiTrack
cleder Oct 15, 2023
018007c
Remove old Geometry and GxGeometry classes
cleder Oct 15, 2023
85cc219
Fix test
cleder Oct 15, 2023
c7ea1ed
use to_string not repr
cleder Oct 15, 2023
c71625e
don't rely or repr in tests
cleder Oct 15, 2023
c65d97f
Merge pull request #243 from cleder/refactor-gx
cleder Oct 15, 2023
0ccb523
Test empty MultiGeometries fixes #221
cleder Oct 15, 2023
fef3cb8
assert a multigeometry
cleder Oct 15, 2023
954e9dd
Merge branch 'main' into develop
cleder Oct 16, 2023
cac607a
fix ruff errors, move to alpha 6
cleder Oct 16, 2023
c11ef7a
update dependencies
cleder Oct 16, 2023
d6e1518
update gitignore
cleder Oct 16, 2023
09fcd49
version peg of setuptools conflicts with mypy
cleder Oct 16, 2023
cb63d48
unpeg setuptools for pypy
cleder Oct 16, 2023
1a24484
call codecov only once
cleder Oct 16, 2023
b773b94
yamllint
cleder Oct 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"

Check warning on line 12 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

12:1 [document-start] missing document start "---"

Check warning on line 12 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

12:1 [document-start] missing document start "---"

Check warning on line 12 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

12:1 [document-start] missing document start "---"

on:

Check warning on line 14 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

14:1 [truthy] truthy value should be one of [false, true]

Check warning on line 14 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

14:1 [truthy] truthy value should be one of [false, true]

Check warning on line 14 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

14:1 [truthy] truthy value should be one of [false, true]
push:
branches: ["develop", "main"]
pull_request:
Expand Down Expand Up @@ -40,7 +40,7 @@

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand All @@ -51,7 +51,7 @@
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs

Check warning on line 54 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

54:101 [line-length] line too long (225 > 100 characters)

Check warning on line 54 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

54:101 [line-length] line too long (225 > 100 characters)

Check warning on line 54 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

54:101 [line-length] line too long (225 > 100 characters)
# queries: security-extended,security-and-quality


Expand All @@ -61,10 +61,10 @@
uses: github/codeql-action/autobuild@v2

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun

Check warning on line 64 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

64:101 [line-length] line too long (118 > 100 characters)

Check warning on line 64 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

64:101 [line-length] line too long (118 > 100 characters)

Check warning on line 64 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

64:101 [line-length] line too long (118 > 100 characters)

# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.

Check warning on line 67 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

67:101 [line-length] line too long (119 > 100 characters)

Check warning on line 67 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

67:101 [line-length] line too long (119 > 100 characters)

Check warning on line 67 in .github/workflows/codeql.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

67:101 [line-length] line too long (119 > 100 characters)

# - run: |
# echo "Run, Build Application using script"
Expand Down
19 changes: 10 additions & 9 deletions .github/workflows/run-all-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
# run tests and lint with a variety of Python versions
---
name: Tests
on: [push, pull_request]

Check warning on line 5 in .github/workflows/run-all-tests.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

5:1 [truthy] truthy value should be one of [false, true]

Check warning on line 5 in .github/workflows/run-all-tests.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

5:1 [truthy] truthy value should be one of [false, true]

Check warning on line 5 in .github/workflows/run-all-tests.yml

View workflow job for this annotation

GitHub Actions / static-tests (3.9)

5:1 [truthy] truthy value should be one of [false, true]

jobs:
cpython:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12-dev']
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']

steps:
- uses: actions/checkout@v3.2.0
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
Expand All @@ -29,10 +29,10 @@
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']

steps:
- uses: actions/checkout@v3.2.0
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
Expand All @@ -57,7 +57,7 @@
python-version: ['3.9']

steps:
- uses: actions/checkout@v3.2.0
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
Expand All @@ -73,7 +73,8 @@
run: |
flake8 fastkml examples docs
black --check fastkml examples docs
yamllint .github/workflows/
yamllint .github/
yamllint .*.y*ml
- name: Check complexity
run: |
radon cc --min B fastkml
Expand All @@ -84,9 +85,9 @@
runs-on: ubuntu-latest
strategy:
matrix:
pypy-version: ['pypy-3.7', 'pypy-3.8', 'pypy-3.9']
pypy-version: ['pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
steps:
- uses: actions/checkout@v3.2.0
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.pypy-version }}
uses: actions/setup-python@v4
with:
Expand All @@ -104,7 +105,7 @@
name: Build and publish to PyPI and TestPyPI
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.2.0
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
Expand Down
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,13 @@ setup.cfg
# Installer logs
pip-log.txt

# Unit test / coverage reports
# Unit/static test / coverage reports
.coverage
.tox
.pytest_cache/
nosetests.xml
.ruff_cache/
monkeytype.sqlite3

# Translations
*.mo
Expand All @@ -51,6 +54,8 @@ venv
.mypy_cache/
.pyre/
.watchmanconfig
.pytype/


# misc
.dccache
36 changes: 28 additions & 8 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v4.5.0
hooks:
- id: check-added-large-files
- id: check-docstring-first
Expand All @@ -21,39 +21,59 @@ repos:
- id: requirements-txt-fixer
- id: trailing-whitespace
- repo: https://github.com/ikamensh/flynt/
rev: "0.77"
rev: "1.0.1"
hooks:
- id: flynt
- repo: https://github.com/MarcoGorelli/absolufy-imports
rev: v0.3.1
hooks:
- id: absolufy-imports
- repo: https://github.com/hakancelikdev/unimport
rev: 33ead41ee30f1d323a9c2fcfd0114297efbbc4d5
rev: 1.0.0
hooks:
- id: unimport
args: [--remove, --include-star-import, --ignore-init, --gitignore]
- repo: https://github.com/asottile/pyupgrade
rev: v3.3.1
rev: v3.15.0
hooks:
- id: pyupgrade
args: ["--py3-plus", "--py37-plus"]
- repo: https://github.com/psf/black
rev: 22.12.0
rev: 23.9.1
hooks:
- id: black
- repo: https://github.com/PyCQA/flake8
rev: 6.0.0
rev: 6.1.0
hooks:
- id: flake8
- repo: https://github.com/pycqa/isort
rev: 5.11.4
rev: 5.12.0
hooks:
- id: isort
- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: 'v0.0.292'
hooks:
- id: ruff
- repo: https://github.com/PyCQA/flake8
rev: 6.1.0
hooks:
- id: flake8
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0 # Use the ref you want to point at
hooks:
- id: python-use-type-annotations
- id: python-check-blanket-type-ignore
- id: python-check-mock-methods
- id: python-no-log-warn
- id: python-use-type-annotations
- id: rst-backticks
- id: rst-directive-colons
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: https://github.com/mgedmin/check-manifest
rev: "0.49"
hooks:
- id: check-manifest
- id: check-manifest
# - repo: https://github.com/Lucas-C/pre-commit-hooks-markup
# rev: v1.0.1
# hooks:
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ recursive-include docs *.py
recursive-include docs *.rst
recursive-include docs Makefile
recursive-include tests *.py
recursive-include schema *.xsd
11 changes: 10 additions & 1 deletion docs/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ especially in the following ways:
Pull Requests
-------------

Start by submitting a pull request on GitHub against the `develop` branch of the
Start by submitting a pull request on GitHub against the ``develop`` branch of the
repository. Your pull request should provide a good description of the change
you are making, and/or the bug that you are fixing.

Expand Down Expand Up @@ -64,6 +64,15 @@ available.

.. _tox: https://pypi.python.org/pypi/tox

coverage
~~~~~~~~

You can also run the tests with coverage_ to see which lines are covered by the
tests. This is useful for writing new tests to cover any uncovered lines::

pytest tests --cov=fastkml --cov=tests --cov-report=xml


pre-commit
~~~~~~~~~~~

Expand Down
1 change: 0 additions & 1 deletion examples/UsageExamples.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ def print_child_features(element):


if __name__ == "__main__":

fname = "KML_Samples.kml"

k = kml.KML()
Expand Down
2 changes: 0 additions & 2 deletions fastkml/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
from fastkml.data import ExtendedData
from fastkml.data import Schema
from fastkml.data import SchemaData
from fastkml.gx import GxGeometry
from fastkml.kml import KML
from fastkml.kml import Document
from fastkml.kml import Folder
Expand Down Expand Up @@ -66,7 +65,6 @@
"TimeStamp",
"ExtendedData",
"Data",
"GxGeometry",
"Schema",
"SchemaData",
"StyleUrl",
Expand Down
17 changes: 13 additions & 4 deletions fastkml/atom.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@

from fastkml.base import _XMLObject
from fastkml.config import ATOMNS as NS
from fastkml.enums import Verbosity
from fastkml.helpers import o_from_attr
from fastkml.helpers import o_from_subelement_text
from fastkml.helpers import o_int_from_attr
Expand Down Expand Up @@ -167,8 +168,12 @@ def __init__(
def from_element(self, element: Element) -> None:
super().from_element(element)

def etree_element(self) -> Element:
return super().etree_element()
def etree_element(
self,
precision: Optional[int] = None,
verbosity: Verbosity = Verbosity.normal,
) -> Element:
return super().etree_element(precision=precision, verbosity=verbosity)


class _Person(_XMLObject):
Expand Down Expand Up @@ -227,8 +232,12 @@ def __init__(
self.uri = uri
self.email = email

def etree_element(self) -> Element:
return super().etree_element()
def etree_element(
self,
precision: Optional[int] = None,
verbosity: Verbosity = Verbosity.normal,
) -> Element:
return super().etree_element(precision=precision, verbosity=verbosity)

def from_element(self, element: Element) -> None:
super().from_element(element)
Expand Down
Loading
Loading