You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

audfactory

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

audfactory - pypi Package Compare versions

Comparing version
1.0.12
to
1.0.13
.flake8

Sorry, the diff of this file is not supported yet

+38
name: Documentation
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
python-version: [ '3.8' ]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install package
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Install docs requirements
run: pip install -r docs/requirements.txt
- name: Test building documentation
run: python -m sphinx docs/ docs/_build/ -b html -W
- name: Check links in documentation
run: python -m sphinx docs/ docs/_build/ -b linkcheck -W
name: Linter
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Install pre-commit hooks
run: |
pip install pre-commit
pre-commit install --install-hooks
- name: Code style check via pre-commit
run: |
pre-commit run --all-files
# ===== PROJECT ===========================================================
#
[project]
name = 'audfactory'
authors = [
{name = 'Hagen Wierstorf', email = 'hwierstorf@audeering.com'},
{name = 'Johannes Wagner', email = 'jwagner@audeering.com'},
]
description = 'Communicate with Artifactory'
readme = 'README.rst'
license = {file = 'LICENSE'}
keywords = [
'artifactory',
]
classifiers = [
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Science/Research',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Topic :: Scientific/Engineering',
]
dependencies = [
'audeer >=1.11.0',
'dohq-artifactory >=0.9.0',
]
# Get version dynamically from git
# (needs setuptools_scm tools config below)
dynamic = ['version']
[project.urls]
repository = 'https://github.com/audeering/audfactory/'
documentation = 'https://audeering.github.io/audfactory/'
# ===== BUILD-SYSTEM ======================================================
#
# Requirements for building the Python package
[build-system]
requires = ['setuptools>=45', 'setuptools_scm[toml]>=6.2']
build-backend = 'setuptools.build_meta'
# ===== TOOL ==============================================================
#
# ----- codespell ---------------------------------------------------------
[tool.codespell]
builtin = 'clear,rare,informal,usage,names'
skip = './audfactory.egg-info,./build,./docs/api,./docs/_templates'
ignore-words-list = 'authentification'
# ----- pytest ------------------------------------------------------------
#
[tool.pytest.ini_options]
cache_dir = '.cache/pytest'
xfail_strict = true
addopts = '''
--doctest-plus
--cov=audfactory
--cov-fail-under=100
--cov-report term-missing
--cov-report xml
--ignore=misc/
'''
# ----- ruff --------------------------------------------------------------
#
[tool.ruff]
select = [
'D', # pydocstyle
'E', # pycodestyle errors
'F', # Pyflakes
'I', # isort
'N', # pep8-naming
'W', # pycodestyle warnings
]
extend-ignore = [
'D100', # Missing docstring in public module
'D103', # Missing docstring in public function
'D104', # Missing docstring in public package
'D107', # Missing docstring in `__init__`
]
line-length = 79
cache-dir = '.cache/ruff'
[tool.ruff.per-file-ignores]
'__init__.py' = [
'F401', # * imported but unused
]
# ----- I: isort -----
#
# Check correct order/syntax of import statements
#
[tool.ruff.isort]
# All from imports have their own line, e.g.
#
# from .utils import util_a
# from .utils import util_b
#
force-single-line = true
# Sort by module names
# and not import before from, e.g.
#
# from datetime import date
# import os
#
force-sort-within-sections = true
# Ensure we have two empty lines
# after last import
lines-after-imports = 2
# Group all audEERING packages into a separate section, e.g.
#
# import os
#
# import numpy as np
#
# import audfactory
#
section-order = [
'future',
'standard-library',
'third-party',
'audeering',
'first-party',
'local-folder',
]
[tool.ruff.isort.sections]
'audeering' = [
'audb',
'audbackend',
'audeer',
'audformat',
'audiofile',
'audinterface',
'audmath',
'audmetric',
'audobject',
'audonnx',
'audplot',
'audresample',
'audtorch',
'opensmile',
'sphinx-audeering-theme',
]
# ----- N: pep8-naming -----
#
# Check variable/class names follow PEP8 naming convention
#
[tool.ruff.pep8-naming]
ignore-names = [
'config', # allow lowercase class name
'test_*', # allow uppercase name when testing a class
]
# ----- W: pycodestyle -----
#
# Check docstrings follow selected convention
#
[tool.ruff.pydocstyle]
convention = 'google'
# ----- setuptools --------------------------------------------------------
#
# Find all (sub-)modules of the Python package
[tool.setuptools.packages.find]
# ----- setuptools_scm ----------------------------------------------------
#
# Use setuptools_scm to get version from git
[tool.setuptools_scm]
+6
-4

@@ -10,3 +10,5 @@ name: Publish

deploy:
runs-on: ubuntu-latest
steps:

@@ -25,3 +27,3 @@ - uses: actions/checkout@v3

python -m pip install --upgrade pip
pip install setuptools wheel twine
pip install build twine virtualenv

@@ -34,6 +36,6 @@ # PyPI package

run: |
python setup.py sdist bdist_wheel
python -m build
python -m twine upload dist/*
# Docuemntation
# Documentation
- name: Install doc dependencies

@@ -66,3 +68,3 @@ run: |

echo "Got changelog: $CHANGELOG"
echo "::set-output name=body::$CHANGELOG"
echo "body=$CHANGELOG" >> $GITHUB_OUTPUT

@@ -69,0 +71,0 @@ - name: Create release on Github

+3
-17

@@ -15,11 +15,4 @@ name: Test

matrix:
os: [ ubuntu-20.04, windows-latest, macOS-latest ]
python-version: [ '3.8' ]
include:
- os: ubuntu-latest
python-version: '3.7'
- os: ubuntu-latest
python-version: '3.9'
- os: ubuntu-latest
python-version: '3.10'
os: [ ubuntu-latest, windows-latest, macOS-latest ]
python-version: [ '3.8', '3.9', '3.10' ]

@@ -39,3 +32,2 @@ steps:

pip install -r requirements.txt
pip install -r docs/requirements.txt
pip install -r tests/requirements.txt

@@ -55,8 +47,2 @@

file: ./coverage.xml
if: matrix.os == 'ubuntu-20.04'
- name: Test building documentation
run: |
python -m sphinx docs/ docs/_build/ -b html -W
python -m sphinx docs/ build/sphinx/html -b linkcheck
if: matrix.os == 'ubuntu-20.04'
if: matrix.os == 'ubuntu-latest'

@@ -10,6 +10,16 @@ # Configuration of checks run by pre-commit

#
#
default_language_version:
python: python3.8
repos:
- repo: https://github.com/pycqa/flake8
rev: '5.0.4'
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.0.276
hooks:
- id: flake8
- id: ruff
- repo: https://github.com/codespell-project/codespell
rev: v2.2.4
hooks:
- id: codespell
additional_dependencies:
- tomli

@@ -1,390 +0,35 @@

Metadata-Version: 1.2
Metadata-Version: 2.1
Name: audfactory
Version: 1.0.12
Version: 1.0.13
Summary: Communicate with Artifactory
Home-page: https://github.com/audeering/audfactory/
Author: Johannes Wagner, Hagen Wierstorf
Author-email: jwagner@audeering.com, hwierstorf@audeering.com
License: MIT
Project-URL: Documentation, https://audeering.github.io/audfactory/
Description: ==========
audfactory
==========
Author-email: Hagen Wierstorf <hwierstorf@audeering.com>, Johannes Wagner <jwagner@audeering.com>
License: MIT License
|tests| |coverage| |docs| |python-versions| |license|
Copyright (c) 2018-2021 audEERING GmbH and Contributors
audfactory communicates with repositories handled by Artifactory_.
It was written on top of the dohq-artifactory_ Python package,
and allows you to deploy and download artifacts
or collect metadata information
from repositories.
Authors:
Johannes Wagner
Hagen Wierstorf
Have a look at the installation_ and usage_ instructions.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.. _Artifactory: https://jfrog.com/artifactory/
.. _dohq-artifactory: https://github.com/devopshq/artifactory
.. _installation: https://audeering.github.io/audfactory/installation.html
.. _usage: https://audeering.github.io/audfactory/usage.html
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
.. badges images and links:
.. |tests| image:: https://github.com/audeering/audfactory/workflows/Test/badge.svg
:target: https://github.com/audeering/audfactory/actions?query=workflow%3ATest
:alt: Test status
.. |coverage| image:: https://codecov.io/gh/audeering/audfactory/branch/master/graph/badge.svg?token=LGV5O708V3
:target: https://codecov.io/gh/audeering/audfactory/
:alt: code coverage
.. |docs| image:: https://img.shields.io/pypi/v/audfactory?label=docs
:target: https://audeering.github.io/audfactory/
:alt: audfactory's documentation
.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg
:target: https://github.com/audeering/audfactory/blob/master/LICENSE
:alt: audfactory's MIT license
.. |python-versions| image:: https://img.shields.io/pypi/pyversions/audfactory.svg
:target: https://pypi.org/project/audfactory/
:alt: audfactorys's supported Python versions
Changelog
=========
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog`_,
and this project adheres to `Semantic Versioning`_.
Version 1.0.12 (2023-02-17)
---------------------------
* Fixed: ``audfactory.versions()``
for server with no access rights
and ``dohq-artifactory>=0.8``
Version 1.0.11 (2023-02-13)
---------------------------
* Fixed: require ``sphinx-audeering-theme>=1.2.1``
to ensure the correct theme is used
Version 1.0.10 (2023-02-13)
---------------------------
* Fixed: support for Python 3.10
by requiring ``dohq-artifactory>=0.8.1``
Version 1.0.9 (2022-12-23)
--------------------------
* Added: support for Python 3.10
* Changed: split API documentation into sub-pages
for each function
Version 1.0.8 (2022-01-03)
--------------------------
* Added: Python 3.9 support
* Removed: Python 3.6 support
Version 1.0.7 (2021-11-30)
--------------------------
* Changed: extend discussion of authentication
in usage section of docs
Version 1.0.6 (2021-09-23)
--------------------------
* Fixed: catch 403 errors inside ``audfactory.versions()``
when requesting versions for non-existing paths
Version 1.0.5 (2021-07-22)
--------------------------
* Fixed: ignore empty strings in ``audfactory.url()``
Version 1.0.4 (2021-06-17)
--------------------------
* Changed: expanded the authentication docs for Artifactory
Version 1.0.3 (2021-03-29)
--------------------------
* Fixed: ``audfactory.versions()`` for missing permissions
Version 1.0.2 (2021-03-26)
--------------------------
* Fixed: link "Edit on Github"
Version 1.0.1 (2021-03-26)
--------------------------
* Fixed: Python package metadata
Version 1.0.0 (2021-03-26)
--------------------------
* Added: support for anonymous Artifactory user access
* Changed: renamed ``audfactory.artifactory_path()`` to ``audfactory.path()``
* Changed: renamed ``audfactory.deploy_artifact()`` to
``audfactory.depoy()``
* Changed: renamed ``audfactory.download_artifact()`` to
``audfactory.download()``
* Changed: renamed ``audfactory.server_url()`` to ``audfactory.url()``
* Removed: ``audfactory.upload_artifact()``
* Removed: ``audfactory.sort_versions()``
* Removed: ``audfactory.dependencies()``
* Removed: ``audfactory.download_pom()``
* Removed: ``audfactory.exclude_dependencies()``
* Removed: ``audfactory.include_dependencies()``
* Removed: ``audfactory.list_artifacts()``
* Removed: ``audfactory.server_pom_url()``
* Removed: ``audfactory.transitive_dependencies()``
* Removed: ``audfactory.transitive_dependencies_as_string()``
* Removed: ``audfactory.pom``
Version 0.8.1 (2021-02-09)
--------------------------
* Fixed: use ``audeer.sort_versions()`` in ``audfactory.versions()``
Version 0.8.0 (2021-02-09)
--------------------------
* Deprecated: ``audfactory.sort_versions()``
* Deprecated: ``audfactory.dependencies()``
* Deprecated: ``audfactory.download_pom()``
* Deprecated: ``audfactory.exclude_dependencies()``
* Deprecated: ``audfactory.include_dependencies()``
* Deprecated: ``audfactory.list_artifacts()``
* Deprecated: ``audfactory.server_pom_url()``
* Deprecated: ``audfactory.transitive_dependencies()``
* Deprecated: ``audfactory.transitive_dependencies_as_string()``
* Deprecated: ``audfactory.pom`` module
Version 0.7.2 (2021-01-27)
--------------------------
* Fixed: copyright year in documentation
Version 0.7.1 (2021-01-27)
--------------------------
* Fixed: sorting of versions for, e.g. ``'10.0.0'`` > ``'9.0.0'``
Version 0.7.0 (2021-01-12)
--------------------------
* Added: ``audfactory.checksum()``
* Added: ``audfactory.deploy_artifact()``
* Added: ``md5``, ``sha1``, ``sha256``, ``parameters`` arguments
to ``audfactory.upload_artifact()``
Version 0.6.3 (2020-10-01)
--------------------------
* Added: official support for Windows
Version 0.6.2 (2020-09-14)
--------------------------
* Added: extend documentation examples of ``audfactory.Lookup``
Version 0.6.1 (2020-09-10)
--------------------------
* Fixed: added documentation for ``audfactory.Lookup.__getitem__()``
Version 0.6.0 (2020-09-09)
--------------------------
* Added: static method ``audfactory.Lookup.generate_uid()``
to generate UID by hashing a string
* Fixed: add documentation of attributes for ``audfactory.Lookup``
Version 0.5.9 (2020-09-08)
--------------------------
* Added: link to HTML documentation to ``setup.cfg``
* Added: cleanup after tests on Artifactory
Version 0.5.8 (2020-06-22)
--------------------------
* Fixed: repository argument of ``audfactory.list_artifacts()``
was ignored before
Version 0.5.7 (2020-06-22)
--------------------------
* Added: documentation on how to convert ``audfactory.Lookup``
to a ``pandas.Dataframe``
* Fixed: list string parameters that are not allowed to use as params
in ``audfactory.Lookup``
Version 0.5.6 (2020-06-10)
--------------------------
* Added: ``audfactory.Lookup.columns``
* Added: ``audfactory.Lookup.ids``
* Added: nice ``repr`` and ``str`` output for ``audfactory.Lookup``
* Fixed: check for correct type of lookup parameters
to avoid storing the same parameter twice in a lookup table
Version 0.5.5 (2020-06-06)
--------------------------
* Fixed: clear print line without new line
Version 0.5.4 (2020-06-05)
--------------------------
* Fixed: print line was not cleared at the end of
``audfactory.upload_artifact()``
and ``audfactory.transitive_dependencies()``
Version 0.5.3 (2020-06-02)
--------------------------
* Changed: error message handling in ``audb.download_artifact()``
is now handled inside ``dohq-artifactory``
* Fixed: broken ``jwt`` dependency due to bug in ``dohq-artifactory``
Version 0.5.2 (2020-05-25)
--------------------------
* Fixed: description of ``params`` argument of ``audfactory.Lookup.create()``
in the documentation
Version 0.5.1 (2020-05-20)
--------------------------
* Added: ``audfactory.Lookup``
Version 0.5.0 (2020-05-19)
--------------------------
* Added: error messages to ``audb.download_artifact()``
* Added: error handling to ``audfactory.download_pom()``
* Changed: replace ``re.match()`` by ``re.search()`` inside
``audfactory.exclude_dependencies()``
and ``audfactory.include_dependencies()``
* Changed: ``audfactory.versions()`` now returns empty list if no versions
are found
* Fixed: parallel execution of tests
* Removed: deprecated ``audfactory.rest_api_request()``
Version 0.4.2 (2020-05-11)
--------------------------
* Changed: raise error if Artfactory config cannot be found for
authentication
Version 0.4.1 (2020-04-22)
--------------------------
* Added: ``audfactory.path_to_group_id()``
Version 0.4.0 (2020-04-01)
--------------------------
* Added: test coverage
* Added: ``audfactory.rest_api_get()``
* Added: ``audfactory.`rest_api_search()``
* Added: ``audfactory.authentification()``
* Deprecated: ``audfactory.rest_api_request()``
* Removed: ``audfactory.download_artifacts()``
Version 0.3.2 (2020-03-06)
--------------------------
* Fixed: ``audfactory.pom.license()`` now doesn't fail for empty license
entries
Version 0.3.1 (2020-02-14)
--------------------------
* Changed: improve progress bars for downloads
Version 0.3.0 (2020-02-14)
--------------------------
* Added: Python 3.8 support
* Added: ``audfactory.upload_artifact()``
* Added: ``audfactory.download_artifact()``
* Changed: add ``repository`` as optional argument instead config value
* Deprecated: ``audfactory.download_artifacts()``
* Removed: Python 3.5 support
Version 0.2.0 (2020-02-07)
--------------------------
* Added: ``audfactory.sort_versions()``
Version 0.1.2 (2020-02-07)
--------------------------
* Changed: add more examples to documentation
* Fixed: typos in documentation
Version 0.1.1 (2020-02-07)
--------------------------
* Changed: improve documentation
Version 0.1.0 (2020-02-06)
--------------------------
* Added: initial release
.. _Keep a Changelog:
https://keepachangelog.com/en/1.0.0/
.. _Semantic Versioning:
https://semver.org/spec/v2.0.0.html
Project-URL: repository, https://github.com/audeering/audfactory/
Project-URL: documentation, https://audeering.github.io/audfactory/
Keywords: artifactory
Platform: any
Classifier: Development Status :: 5 - Production/Stable

@@ -397,6 +42,45 @@ Classifier: Intended Audience :: Science/Research

Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering
Description-Content-Type: text/x-rst
License-File: LICENSE
==========
audfactory
==========
|tests| |coverage| |docs| |python-versions| |license|
audfactory communicates with repositories handled by Artifactory_.
It was written on top of the dohq-artifactory_ Python package,
and allows you to deploy and download artifacts
or collect metadata information
from repositories.
Have a look at the installation_ and usage_ instructions.
.. _Artifactory: https://jfrog.com/artifactory/
.. _dohq-artifactory: https://github.com/devopshq/artifactory
.. _installation: https://audeering.github.io/audfactory/installation.html
.. _usage: https://audeering.github.io/audfactory/usage.html
.. badges images and links:
.. |tests| image:: https://github.com/audeering/audfactory/workflows/Test/badge.svg
:target: https://github.com/audeering/audfactory/actions?query=workflow%3ATest
:alt: Test status
.. |coverage| image:: https://codecov.io/gh/audeering/audfactory/branch/main/graph/badge.svg?token=LGV5O708V3
:target: https://codecov.io/gh/audeering/audfactory/
:alt: code coverage
.. |docs| image:: https://img.shields.io/pypi/v/audfactory?label=docs
:target: https://audeering.github.io/audfactory/
:alt: audfactory's documentation
.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg
:target: https://github.com/audeering/audfactory/blob/main/LICENSE
:alt: audfactory's MIT license
.. |python-versions| image:: https://img.shields.io/pypi/pyversions/audfactory.svg
:target: https://pypi.org/project/audfactory/
:alt: audfactorys's supported Python versions
audeer>=1.11.0
dohq-artifactory>=0.8.1
dohq-artifactory>=0.9.0

@@ -0,1 +1,2 @@

.flake8
.gitignore

@@ -7,6 +8,6 @@ .pre-commit-config.yaml

README.rst
pyproject.toml
requirements.txt
setup.cfg
setup.py
.github/workflows/flake8.yml
.github/workflows/doc.yml
.github/workflows/linter.yml
.github/workflows/publish.yml

@@ -13,0 +14,0 @@ .github/workflows/test.yml

audfactory
dist
docs
tests

@@ -1,13 +0,11 @@

from audfactory.core.api import (
authentification,
checksum,
deploy,
download,
group_id_to_path,
path,
path_to_group_id,
rest_api_get,
url,
versions,
)
from audfactory.core.api import authentification
from audfactory.core.api import checksum
from audfactory.core.api import deploy
from audfactory.core.api import download
from audfactory.core.api import group_id_to_path
from audfactory.core.api import path
from audfactory.core.api import path_to_group_id
from audfactory.core.api import rest_api_get
from audfactory.core.api import url
from audfactory.core.api import versions
from audfactory.core.lookup import Lookup

@@ -14,0 +12,0 @@

@@ -5,9 +5,7 @@ import errno

from artifactory import (
ArtifactoryPath,
get_global_config_entry,
md5sum,
sha1sum,
sha256sum,
)
from artifactory import ArtifactoryPath
from artifactory import get_global_config_entry
from artifactory import md5sum
from artifactory import sha1sum
from artifactory import sha256sum
import dohq_artifactory

@@ -168,2 +166,3 @@ import requests

parameters=parameters,
quote_parameters=True,
)

@@ -303,2 +302,3 @@

...
attachment
db

@@ -441,2 +441,5 @@ media

RuntimeError,
):
versions = []
except (
# no access rights to server with dohq-artifactory<0.8

@@ -456,3 +459,3 @@ requests.exceptions.HTTPError,

def _strip_url(url): # pragma: nocover
r"""Returns a URL without http(s):// prefixes and ending /"""
r"""Returns a URL without http(s):// prefixes and ending /."""
if url.startswith('http://'):

@@ -459,0 +462,0 @@ url = url[7:]

@@ -718,3 +718,3 @@ import csv

writer.writerows(table)
# Seek to beginning of file, otherwise an empty CSV file wil be written
# Seek to beginning of file, otherwise an empty CSV file will be written
fobj.seek(0)

@@ -721,0 +721,0 @@ artifactory_path = audfactory.path(url)

@@ -10,2 +10,9 @@ Changelog

Version 1.0.13 (2023-07-25)
---------------------------
* Changed: require ``dohq-artifactory>=0.9.0``
* Fixed: suppress warning with newer ``dohq-artifactory`` versions
Version 1.0.12 (2023-02-17)

@@ -98,3 +105,3 @@ ---------------------------

* Changed: renamed ``audfactory.deploy_artifact()`` to
``audfactory.depoy()``
``audfactory.deploy()``
* Changed: renamed ``audfactory.download_artifact()`` to

@@ -101,0 +108,0 @@ ``audfactory.download()``

@@ -6,4 +6,8 @@ Contributing

Feel free to create a `pull request`_ .
If you find errors, omissions, inconsistencies or other things
that need improvement, please create an issue_.
If you find errors,
omissions,
inconsistencies,
or other things
that need improvement,
please create an issue_.

@@ -17,3 +21,3 @@ .. _issue: https://github.com/audeering/audfactory/issues/new/

Instead of pip-installing the latest release from PyPI,
Instead of pip-installing the latest release from PyPI_,
you should get the newest development version from Github_::

@@ -23,14 +27,17 @@

cd audfactory
# Create virutal environment for this project
# Create virtual environment for this project
# e.g.
# virtualenv --python="python3" $HOME/.envs/audfactory
# source $HOME/.envs/audeer/bin/activate
# source $HOME/.envs/audfactory/bin/activate
pip install -r requirements.txt
.. _Github: https://github.com/audeering/audfactory
This way, your installation always stays up-to-date,
This way,
your installation always stays up-to-date,
even if you pull new changes from the Github repository.
.. _PyPI: https://pypi.org/project/audfactory/
.. _Github: https://github.com/audeering/audfactory/
Coding Convention

@@ -40,5 +47,7 @@ -----------------

We follow the PEP8_ convention for Python code
and check for correct syntax with flake8_.
Exceptions are defined under the ``[flake8]`` section
in :file:`setup.cfg`.
and check for correct syntax with ruff_.
In addition,
we check for common spelling errors with codespell_.
Both tools and possible exceptions
are defined in :file:`pyproject.toml`.

@@ -52,18 +61,22 @@ The checks are executed in the CI using `pre-commit`_.

Afterwards flake8_ is executed
Afterwards ruff_ and codespell_ are executed
every time you create a commit.
You can also install flake8_
You can also install ruff_ and codespell_
and call it directly::
pip install flake8 # consider system wide installation
flake8
pip install ruff codespell # consider system wide installation
ruff check .
codespell
It can be restricted to specific folders::
flake8 audfoo/ tests/
ruff check audfoo/ tests/
codespell audfoo/ tests/
.. _codespell: https://github.com/codespell-project/codespell/
.. _PEP8: http://www.python.org/dev/peps/pep-0008/
.. _flake8: https://flake8.pycqa.org/en/latest/index.html
.. _pre-commit: https://pre-commit.com
.. _ruff: https://beta.ruff.rs

@@ -78,3 +91,2 @@

pip install -r requirements.txt
pip install -r docs/requirements.txt

@@ -84,3 +96,3 @@

python -m sphinx docs/ build/sphinx/html -b html
python -m sphinx docs/ build/sphinx/html -b html

@@ -92,5 +104,5 @@ The generated files will be available

python -m sphinx docs/ build/sphinx/linkcheck -b linkcheck
python -m sphinx docs/ build/sphinx/html -b linkcheck
.. _Sphinx: http://sphinx-doc.org/
.. _Sphinx: http://sphinx-doc.org

@@ -119,3 +131,3 @@

.. _pytest: https://pytest.org/
.. _pytest: https://pytest.org

@@ -122,0 +134,0 @@

@@ -1,2 +0,1 @@

import configparser
from datetime import date

@@ -6,13 +5,14 @@ import os

import toml
import audeer
config = configparser.ConfigParser()
config.read(os.path.join('..', 'setup.cfg'))
config = toml.load(audeer.path('..', 'pyproject.toml'))
# Project -----------------------------------------------------------------
author = config['metadata']['author']
project = config['project']['name']
author = ', '.join(author['name'] for author in config['project']['authors'])
copyright = f'2019-{date.today().year} audEERING GmbH'
project = config['metadata']['name']
version = audeer.git_repo_version()

@@ -19,0 +19,0 @@ title = 'Documentation'

@@ -1,3 +0,1 @@

.. audfactory documentation master file
.. include:: ../README.rst

@@ -4,0 +2,0 @@

@@ -7,1 +7,2 @@ audeer

sphinx-copybutton
toml

@@ -96,3 +96,3 @@ Usage

.. _API key: https://www.jfrog.com/confluence/display/JFROG/User+Profile#UserProfile-APIKey
.. _API key: https://jfrog.com/help/r/jfrog-platform-administration-documentation/api-key

@@ -99,0 +99,0 @@

+65
-381

@@ -1,390 +0,35 @@

Metadata-Version: 1.2
Metadata-Version: 2.1
Name: audfactory
Version: 1.0.12
Version: 1.0.13
Summary: Communicate with Artifactory
Home-page: https://github.com/audeering/audfactory/
Author: Johannes Wagner, Hagen Wierstorf
Author-email: jwagner@audeering.com, hwierstorf@audeering.com
License: MIT
Project-URL: Documentation, https://audeering.github.io/audfactory/
Description: ==========
audfactory
==========
Author-email: Hagen Wierstorf <hwierstorf@audeering.com>, Johannes Wagner <jwagner@audeering.com>
License: MIT License
|tests| |coverage| |docs| |python-versions| |license|
Copyright (c) 2018-2021 audEERING GmbH and Contributors
audfactory communicates with repositories handled by Artifactory_.
It was written on top of the dohq-artifactory_ Python package,
and allows you to deploy and download artifacts
or collect metadata information
from repositories.
Authors:
Johannes Wagner
Hagen Wierstorf
Have a look at the installation_ and usage_ instructions.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.. _Artifactory: https://jfrog.com/artifactory/
.. _dohq-artifactory: https://github.com/devopshq/artifactory
.. _installation: https://audeering.github.io/audfactory/installation.html
.. _usage: https://audeering.github.io/audfactory/usage.html
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
.. badges images and links:
.. |tests| image:: https://github.com/audeering/audfactory/workflows/Test/badge.svg
:target: https://github.com/audeering/audfactory/actions?query=workflow%3ATest
:alt: Test status
.. |coverage| image:: https://codecov.io/gh/audeering/audfactory/branch/master/graph/badge.svg?token=LGV5O708V3
:target: https://codecov.io/gh/audeering/audfactory/
:alt: code coverage
.. |docs| image:: https://img.shields.io/pypi/v/audfactory?label=docs
:target: https://audeering.github.io/audfactory/
:alt: audfactory's documentation
.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg
:target: https://github.com/audeering/audfactory/blob/master/LICENSE
:alt: audfactory's MIT license
.. |python-versions| image:: https://img.shields.io/pypi/pyversions/audfactory.svg
:target: https://pypi.org/project/audfactory/
:alt: audfactorys's supported Python versions
Changelog
=========
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog`_,
and this project adheres to `Semantic Versioning`_.
Version 1.0.12 (2023-02-17)
---------------------------
* Fixed: ``audfactory.versions()``
for server with no access rights
and ``dohq-artifactory>=0.8``
Version 1.0.11 (2023-02-13)
---------------------------
* Fixed: require ``sphinx-audeering-theme>=1.2.1``
to ensure the correct theme is used
Version 1.0.10 (2023-02-13)
---------------------------
* Fixed: support for Python 3.10
by requiring ``dohq-artifactory>=0.8.1``
Version 1.0.9 (2022-12-23)
--------------------------
* Added: support for Python 3.10
* Changed: split API documentation into sub-pages
for each function
Version 1.0.8 (2022-01-03)
--------------------------
* Added: Python 3.9 support
* Removed: Python 3.6 support
Version 1.0.7 (2021-11-30)
--------------------------
* Changed: extend discussion of authentication
in usage section of docs
Version 1.0.6 (2021-09-23)
--------------------------
* Fixed: catch 403 errors inside ``audfactory.versions()``
when requesting versions for non-existing paths
Version 1.0.5 (2021-07-22)
--------------------------
* Fixed: ignore empty strings in ``audfactory.url()``
Version 1.0.4 (2021-06-17)
--------------------------
* Changed: expanded the authentication docs for Artifactory
Version 1.0.3 (2021-03-29)
--------------------------
* Fixed: ``audfactory.versions()`` for missing permissions
Version 1.0.2 (2021-03-26)
--------------------------
* Fixed: link "Edit on Github"
Version 1.0.1 (2021-03-26)
--------------------------
* Fixed: Python package metadata
Version 1.0.0 (2021-03-26)
--------------------------
* Added: support for anonymous Artifactory user access
* Changed: renamed ``audfactory.artifactory_path()`` to ``audfactory.path()``
* Changed: renamed ``audfactory.deploy_artifact()`` to
``audfactory.depoy()``
* Changed: renamed ``audfactory.download_artifact()`` to
``audfactory.download()``
* Changed: renamed ``audfactory.server_url()`` to ``audfactory.url()``
* Removed: ``audfactory.upload_artifact()``
* Removed: ``audfactory.sort_versions()``
* Removed: ``audfactory.dependencies()``
* Removed: ``audfactory.download_pom()``
* Removed: ``audfactory.exclude_dependencies()``
* Removed: ``audfactory.include_dependencies()``
* Removed: ``audfactory.list_artifacts()``
* Removed: ``audfactory.server_pom_url()``
* Removed: ``audfactory.transitive_dependencies()``
* Removed: ``audfactory.transitive_dependencies_as_string()``
* Removed: ``audfactory.pom``
Version 0.8.1 (2021-02-09)
--------------------------
* Fixed: use ``audeer.sort_versions()`` in ``audfactory.versions()``
Version 0.8.0 (2021-02-09)
--------------------------
* Deprecated: ``audfactory.sort_versions()``
* Deprecated: ``audfactory.dependencies()``
* Deprecated: ``audfactory.download_pom()``
* Deprecated: ``audfactory.exclude_dependencies()``
* Deprecated: ``audfactory.include_dependencies()``
* Deprecated: ``audfactory.list_artifacts()``
* Deprecated: ``audfactory.server_pom_url()``
* Deprecated: ``audfactory.transitive_dependencies()``
* Deprecated: ``audfactory.transitive_dependencies_as_string()``
* Deprecated: ``audfactory.pom`` module
Version 0.7.2 (2021-01-27)
--------------------------
* Fixed: copyright year in documentation
Version 0.7.1 (2021-01-27)
--------------------------
* Fixed: sorting of versions for, e.g. ``'10.0.0'`` > ``'9.0.0'``
Version 0.7.0 (2021-01-12)
--------------------------
* Added: ``audfactory.checksum()``
* Added: ``audfactory.deploy_artifact()``
* Added: ``md5``, ``sha1``, ``sha256``, ``parameters`` arguments
to ``audfactory.upload_artifact()``
Version 0.6.3 (2020-10-01)
--------------------------
* Added: official support for Windows
Version 0.6.2 (2020-09-14)
--------------------------
* Added: extend documentation examples of ``audfactory.Lookup``
Version 0.6.1 (2020-09-10)
--------------------------
* Fixed: added documentation for ``audfactory.Lookup.__getitem__()``
Version 0.6.0 (2020-09-09)
--------------------------
* Added: static method ``audfactory.Lookup.generate_uid()``
to generate UID by hashing a string
* Fixed: add documentation of attributes for ``audfactory.Lookup``
Version 0.5.9 (2020-09-08)
--------------------------
* Added: link to HTML documentation to ``setup.cfg``
* Added: cleanup after tests on Artifactory
Version 0.5.8 (2020-06-22)
--------------------------
* Fixed: repository argument of ``audfactory.list_artifacts()``
was ignored before
Version 0.5.7 (2020-06-22)
--------------------------
* Added: documentation on how to convert ``audfactory.Lookup``
to a ``pandas.Dataframe``
* Fixed: list string parameters that are not allowed to use as params
in ``audfactory.Lookup``
Version 0.5.6 (2020-06-10)
--------------------------
* Added: ``audfactory.Lookup.columns``
* Added: ``audfactory.Lookup.ids``
* Added: nice ``repr`` and ``str`` output for ``audfactory.Lookup``
* Fixed: check for correct type of lookup parameters
to avoid storing the same parameter twice in a lookup table
Version 0.5.5 (2020-06-06)
--------------------------
* Fixed: clear print line without new line
Version 0.5.4 (2020-06-05)
--------------------------
* Fixed: print line was not cleared at the end of
``audfactory.upload_artifact()``
and ``audfactory.transitive_dependencies()``
Version 0.5.3 (2020-06-02)
--------------------------
* Changed: error message handling in ``audb.download_artifact()``
is now handled inside ``dohq-artifactory``
* Fixed: broken ``jwt`` dependency due to bug in ``dohq-artifactory``
Version 0.5.2 (2020-05-25)
--------------------------
* Fixed: description of ``params`` argument of ``audfactory.Lookup.create()``
in the documentation
Version 0.5.1 (2020-05-20)
--------------------------
* Added: ``audfactory.Lookup``
Version 0.5.0 (2020-05-19)
--------------------------
* Added: error messages to ``audb.download_artifact()``
* Added: error handling to ``audfactory.download_pom()``
* Changed: replace ``re.match()`` by ``re.search()`` inside
``audfactory.exclude_dependencies()``
and ``audfactory.include_dependencies()``
* Changed: ``audfactory.versions()`` now returns empty list if no versions
are found
* Fixed: parallel execution of tests
* Removed: deprecated ``audfactory.rest_api_request()``
Version 0.4.2 (2020-05-11)
--------------------------
* Changed: raise error if Artfactory config cannot be found for
authentication
Version 0.4.1 (2020-04-22)
--------------------------
* Added: ``audfactory.path_to_group_id()``
Version 0.4.0 (2020-04-01)
--------------------------
* Added: test coverage
* Added: ``audfactory.rest_api_get()``
* Added: ``audfactory.`rest_api_search()``
* Added: ``audfactory.authentification()``
* Deprecated: ``audfactory.rest_api_request()``
* Removed: ``audfactory.download_artifacts()``
Version 0.3.2 (2020-03-06)
--------------------------
* Fixed: ``audfactory.pom.license()`` now doesn't fail for empty license
entries
Version 0.3.1 (2020-02-14)
--------------------------
* Changed: improve progress bars for downloads
Version 0.3.0 (2020-02-14)
--------------------------
* Added: Python 3.8 support
* Added: ``audfactory.upload_artifact()``
* Added: ``audfactory.download_artifact()``
* Changed: add ``repository`` as optional argument instead config value
* Deprecated: ``audfactory.download_artifacts()``
* Removed: Python 3.5 support
Version 0.2.0 (2020-02-07)
--------------------------
* Added: ``audfactory.sort_versions()``
Version 0.1.2 (2020-02-07)
--------------------------
* Changed: add more examples to documentation
* Fixed: typos in documentation
Version 0.1.1 (2020-02-07)
--------------------------
* Changed: improve documentation
Version 0.1.0 (2020-02-06)
--------------------------
* Added: initial release
.. _Keep a Changelog:
https://keepachangelog.com/en/1.0.0/
.. _Semantic Versioning:
https://semver.org/spec/v2.0.0.html
Project-URL: repository, https://github.com/audeering/audfactory/
Project-URL: documentation, https://audeering.github.io/audfactory/
Keywords: artifactory
Platform: any
Classifier: Development Status :: 5 - Production/Stable

@@ -397,6 +42,45 @@ Classifier: Intended Audience :: Science/Research

Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering
Description-Content-Type: text/x-rst
License-File: LICENSE
==========
audfactory
==========
|tests| |coverage| |docs| |python-versions| |license|
audfactory communicates with repositories handled by Artifactory_.
It was written on top of the dohq-artifactory_ Python package,
and allows you to deploy and download artifacts
or collect metadata information
from repositories.
Have a look at the installation_ and usage_ instructions.
.. _Artifactory: https://jfrog.com/artifactory/
.. _dohq-artifactory: https://github.com/devopshq/artifactory
.. _installation: https://audeering.github.io/audfactory/installation.html
.. _usage: https://audeering.github.io/audfactory/usage.html
.. badges images and links:
.. |tests| image:: https://github.com/audeering/audfactory/workflows/Test/badge.svg
:target: https://github.com/audeering/audfactory/actions?query=workflow%3ATest
:alt: Test status
.. |coverage| image:: https://codecov.io/gh/audeering/audfactory/branch/main/graph/badge.svg?token=LGV5O708V3
:target: https://codecov.io/gh/audeering/audfactory/
:alt: code coverage
.. |docs| image:: https://img.shields.io/pypi/v/audfactory?label=docs
:target: https://audeering.github.io/audfactory/
:alt: audfactory's documentation
.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg
:target: https://github.com/audeering/audfactory/blob/main/LICENSE
:alt: audfactory's MIT license
.. |python-versions| image:: https://img.shields.io/pypi/pyversions/audfactory.svg
:target: https://pypi.org/project/audfactory/
:alt: audfactorys's supported Python versions

@@ -25,3 +25,3 @@ ==========

:alt: Test status
.. |coverage| image:: https://codecov.io/gh/audeering/audfactory/branch/master/graph/badge.svg?token=LGV5O708V3
.. |coverage| image:: https://codecov.io/gh/audeering/audfactory/branch/main/graph/badge.svg?token=LGV5O708V3
:target: https://codecov.io/gh/audeering/audfactory/

@@ -33,3 +33,3 @@ :alt: code coverage

.. |license| image:: https://img.shields.io/badge/license-MIT-green.svg
:target: https://github.com/audeering/audfactory/blob/master/LICENSE
:target: https://github.com/audeering/audfactory/blob/main/LICENSE
:alt: audfactory's MIT license

@@ -36,0 +36,0 @@ .. |python-versions| image:: https://img.shields.io/pypi/pyversions/audfactory.svg

@@ -1,54 +0,1 @@

[metadata]
name = audfactory
author = Johannes Wagner, Hagen Wierstorf
author_email = jwagner@audeering.com, hwierstorf@audeering.com
url = https://github.com/audeering/audfactory/
project_urls =
Documentation = https://audeering.github.io/audfactory/
description = Communicate with Artifactory
long_description = file: README.rst, CHANGELOG.rst
license = MIT
license_file = LICENSE
keywords = artifactory
platforms = any
classifiers =
Development Status :: 5 - Production/Stable
Intended Audience :: Science/Research
Intended Audience :: Developers
License :: OSI Approved :: MIT License
Operating System :: OS Independent
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Topic :: Scientific/Engineering
[options]
packages = find:
install_requires =
audeer >=1.11.0
dohq-artifactory >=0.8.1
setup_requires =
setuptools_scm
[tool:pytest]
addopts =
--cov=audfactory
--cov-report term-missing
--cov-fail-under=100
--doctest-plus
--cov-report xml
xfail_strict = true
[flake8]
exclude =
.eggs,
build,
extend-ignore =
W503,
per-file-ignores =
__init__.py: F401,
[egg_info]

@@ -55,0 +2,0 @@ tag_build =

import os
import pytest
import uuid
import pytest
import audfactory

@@ -42,1 +43,18 @@

cleanup()
@pytest.fixture(scope='function', autouse=False)
def no_artifactory_access_rights():
current_username = os.environ.get('ARTIFACTORY_USERNAME', False)
current_api_key = os.environ.get('ARTIFACTORY_API_KEY', False)
os.environ['ARTIFACTORY_USERNAME'] = 'non-existing-user'
os.environ['ARTIFACTORY_API_KEY'] = 'non-existing-password'
yield
if current_username:
os.environ["ARTIFACTORY_USERNAME"] = current_username
else:
del os.environ['ARTIFACTORY_USERNAME']
if current_api_key:
os.environ['ARTIFACTORY_API_KEY'] = current_api_key
else:
del os.environ['ARTIFACTORY_API_KEY']

@@ -6,2 +6,3 @@ import os

import audeer
import audfactory

@@ -392,1 +393,5 @@

assert versions == expected_versions
def test_versions_no_access(no_artifactory_access_rights):
assert audfactory.versions(SERVER, REPOSITORY, 'group_id', 'name') == []

@@ -8,2 +8,3 @@ import csv

import audeer
import audfactory

@@ -10,0 +11,0 @@

name: Flake8
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Install pre-commit hooks
run: |
pip install pre-commit
pre-commit install --install-hooks
- name: Code style check via pre-commit
run: |
pre-commit run --all-files
from setuptools import setup
setup(use_scm_version=True)