mac-alias 2.2.2__tar.gz → 2.2.4rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. mac_alias-2.2.4rc1/.github/dependabot.yml +30 -0
  2. mac_alias-2.2.4rc1/.github/workflows/ci.yml +114 -0
  3. mac_alias-2.2.4rc1/.github/workflows/dependabot-changenote.yml +19 -0
  4. mac_alias-2.2.4rc1/.github/workflows/publish.yml +22 -0
  5. mac_alias-2.2.4rc1/.github/workflows/release.yml +86 -0
  6. mac_alias-2.2.4rc1/.github/zizmor.yml +9 -0
  7. mac_alias-2.2.4rc1/.gitignore +14 -0
  8. mac_alias-2.2.4rc1/.pre-commit-config.yaml +20 -0
  9. mac_alias-2.2.4rc1/.readthedocs.yaml +19 -0
  10. mac_alias-2.2.4rc1/CHANGELOG.md +144 -0
  11. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/LICENSE +1 -0
  12. mac_alias-2.2.4rc1/PKG-INFO +39 -0
  13. mac_alias-2.2.4rc1/README.md +11 -0
  14. mac_alias-2.2.4rc1/changes/template.md +29 -0
  15. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/docs/alias_fmt.rst +1 -1
  16. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/docs/conf.py +3 -10
  17. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/docs/mac_alias.rst +6 -2
  18. mac_alias-2.2.4rc1/pyproject.toml +152 -0
  19. mac_alias-2.2.4rc1/setup.cfg +4 -0
  20. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/src/mac_alias/__init__.py +31 -30
  21. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/src/mac_alias/alias.py +20 -19
  22. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/src/mac_alias/bookmark.py +11 -11
  23. mac_alias-2.2.4rc1/src/mac_alias.egg-info/PKG-INFO +39 -0
  24. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/src/mac_alias.egg-info/SOURCES.txt +12 -6
  25. mac_alias-2.2.4rc1/src/mac_alias.egg-info/scm_file_list.json +35 -0
  26. mac_alias-2.2.4rc1/src/mac_alias.egg-info/scm_version.json +8 -0
  27. mac_alias-2.2.4rc1/tox.ini +29 -0
  28. mac_alias-2.2.2/.pre-commit-config.yaml +0 -35
  29. mac_alias-2.2.2/.readthedocs.yaml +0 -29
  30. mac_alias-2.2.2/MANIFEST.in +0 -10
  31. mac_alias-2.2.2/PKG-INFO +0 -78
  32. mac_alias-2.2.2/README.rst +0 -46
  33. mac_alias-2.2.2/pyproject.toml +0 -12
  34. mac_alias-2.2.2/setup.cfg +0 -75
  35. mac_alias-2.2.2/src/mac_alias.egg-info/PKG-INFO +0 -78
  36. mac_alias-2.2.2/src/mac_alias.egg-info/entry_points.txt +0 -2
  37. mac_alias-2.2.2/src/mac_alias.egg-info/not-zip-safe +0 -1
  38. mac_alias-2.2.2/src/mac_alias.egg-info/requires.txt +0 -14
  39. mac_alias-2.2.2/tox.ini +0 -49
  40. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/docs/Makefile +0 -0
  41. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/docs/_static/README.rst +0 -0
  42. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/docs/bookmark_fmt.rst +0 -0
  43. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/docs/index.rst +0 -0
  44. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/docs/make.bat +0 -0
  45. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/src/mac_alias/osx.py +0 -0
  46. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/src/mac_alias/utils.py +0 -0
  47. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/src/mac_alias.egg-info/dependency_links.txt +0 -0
  48. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/src/mac_alias.egg-info/top_level.txt +0 -0
  49. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/tests/__init__.py +0 -0
  50. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/tests/test_alias.py +0 -0
  51. {mac_alias-2.2.2 → mac_alias-2.2.4rc1}/tests/test_bookmark.py +0 -0
@@ -0,0 +1,30 @@
1
+ version: 2
2
+
3
+ multi-ecosystem-groups:
4
+ dependencies:
5
+ schedule:
6
+ # Check for updates on the first Sunday of every month, 8PM UTC
7
+ interval: "cron"
8
+ cronjob: "0 20 * * sun#1"
9
+
10
+ updates:
11
+ - package-ecosystem: "github-actions"
12
+ directory: "/"
13
+ patterns: ["*"]
14
+ multi-ecosystem-group: "dependencies"
15
+ cooldown:
16
+ default-days: 7
17
+
18
+ - package-ecosystem: "pip"
19
+ directory: "/"
20
+ patterns: ["*"]
21
+ multi-ecosystem-group: "dependencies"
22
+ cooldown:
23
+ default-days: 7
24
+
25
+ - package-ecosystem: "pre-commit"
26
+ directory: "/"
27
+ patterns: ["*"]
28
+ multi-ecosystem-group: "dependencies"
29
+ cooldown:
30
+ default-days: 7
@@ -0,0 +1,114 @@
1
+ name: CI
2
+ on:
3
+ pull_request:
4
+ push:
5
+ branches:
6
+ - main
7
+ workflow_call:
8
+ inputs:
9
+ attest-package:
10
+ description: "Create GitHub provenance attestation for the package."
11
+ default: "false"
12
+ type: string
13
+ outputs:
14
+ artifact-basename:
15
+ description: "Base name of the uploaded artifacts; use for artifact retrieval."
16
+ value: ${{ jobs.package.outputs.artifact-basename }}
17
+
18
+ # Cancel active CI runs for a PR before starting another run
19
+ concurrency:
20
+ group: ${{ github.workflow }}-${{ github.ref }}
21
+ cancel-in-progress: true
22
+
23
+ permissions:
24
+ contents: read
25
+
26
+ defaults:
27
+ run:
28
+ shell: bash
29
+
30
+ env:
31
+ FORCE_COLOR: "1"
32
+
33
+ jobs:
34
+ pre-commit:
35
+ name: Pre-commit checks
36
+ runs-on: "ubuntu-latest"
37
+ steps:
38
+ - name: Checkout
39
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
40
+ with:
41
+ persist-credentials: false
42
+ fetch-depth: 1
43
+
44
+ - name: Set up Python
45
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
46
+ with:
47
+ python-version: "3.X"
48
+
49
+ - name: Lint with prek
50
+ uses: j178/prek-action@44924fe9ef4a6f88253c4b6b1bf11c689d3ce53d # v3.1.0
51
+
52
+ towncrier:
53
+ name: Check towncrier
54
+ uses: beeware/.github/.github/workflows/towncrier-run.yml@main
55
+ permissions:
56
+ contents: read
57
+ pull-requests: write
58
+ with:
59
+ tox-source: "--group tox"
60
+
61
+ package:
62
+ name: Package mac_alias
63
+ needs: [ pre-commit, towncrier ]
64
+ permissions:
65
+ id-token: write
66
+ attestations: write
67
+ contents: read
68
+ uses: beeware/.github/.github/workflows/python-package-create.yml@main
69
+ with:
70
+ attest: ${{ inputs.attest-package }}
71
+
72
+ unit-tests:
73
+ name: Unit tests
74
+ needs: package
75
+ strategy:
76
+ fail-fast: false
77
+ matrix:
78
+ python-version: [ "3.11", "3.12", "3.13", "3.14", "3.15", "3.16" ]
79
+ include:
80
+ # Run all Python versions on M1
81
+ - macOS-version: "macos-26"
82
+
83
+ # Run the most recent Python on macOS 15 M1
84
+ - python-version: "3.x"
85
+ macOS-version: "macos-15"
86
+ # Run the most recent Python on macOS 15 intel
87
+ - python-version: "3.x"
88
+ macOS-version: "macos-15-intel"
89
+ # Run the most recent Python on macOS 27
90
+ - python-version: "3.x"
91
+ macOS-version: "xcode-27"
92
+
93
+ runs-on: ${{ matrix.macOS-version }}
94
+ steps:
95
+ - name: Checkout
96
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
97
+ with:
98
+ persist-credentials: false
99
+ fetch-depth: 1
100
+
101
+ - name: Set up Python ${{ matrix.python-version }}
102
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
103
+ with:
104
+ python-version: ${{ matrix.python-version }}
105
+ allow-prereleases: true
106
+
107
+ - name: Install dependencies
108
+ run: |
109
+ python -m pip install --upgrade pip
110
+ python -m pip install --group tox
111
+
112
+ - name: Test
113
+ run: |
114
+ tox -e py
@@ -0,0 +1,19 @@
1
+ name: Dependabot Change Note
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - 'dependabot/**'
7
+
8
+ permissions:
9
+ contents: read
10
+ pull-requests: write
11
+
12
+ jobs:
13
+ changenote:
14
+ name: Dependabot Change Note
15
+ uses: beeware/.github/.github/workflows/dependabot-changenote.yml@main
16
+ secrets:
17
+ BRUTUS_PAT_TOKEN: ${{ secrets.BRUTUS_PAT_TOKEN }}
18
+ with:
19
+ changenote-format: "md"
@@ -0,0 +1,22 @@
1
+ name: Upload Python Package
2
+
3
+ on:
4
+ release:
5
+ types: published
6
+
7
+ jobs:
8
+ deploy:
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ # This permission is required for trusted publishing.
12
+ id-token: write
13
+ steps:
14
+ - uses: dsaltares/fetch-gh-release-asset@aa2ab1243d6e0d5b405b973c89fa4d06a2d0fff7 # 1.1.2
15
+ with:
16
+ version: tags/${{ github.event.release.tag_name }}
17
+ file: ${{ github.event.repository.name }}.*
18
+ regex: true
19
+ target: dist/
20
+
21
+ - name: Publish release to production PyPI
22
+ uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3
@@ -0,0 +1,86 @@
1
+ name: Create Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ ci:
10
+ name: CI
11
+ permissions:
12
+ id-token: write
13
+ contents: read
14
+ attestations: write
15
+ pull-requests: write
16
+ uses: $/.github/workflows/ci.yml
17
+ with:
18
+ attest-package: "true"
19
+
20
+ docs:
21
+ permissions:
22
+ contents: read
23
+ name: Verify Docs Build
24
+ uses: beeware/.github/.github/workflows/docs-build-verify.yml@main
25
+ secrets:
26
+ RTD_API_TOKEN: ${{ secrets.RTD_API_TOKEN }}
27
+ with:
28
+ project-name: "mac-alias"
29
+ project-version: ${{ github.ref_name }}
30
+
31
+ release:
32
+ name: Create Release
33
+ needs: ci
34
+ runs-on: ubuntu-latest
35
+ permissions:
36
+ contents: write
37
+ # This permission is required for trusted publishing.
38
+ id-token: write
39
+ steps:
40
+ - name: Set build variables
41
+ run: |
42
+ echo "VERSION=${GITHUB_REF_NAME#v}" | tee -a $GITHUB_ENV
43
+
44
+ - name: Checkout
45
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
46
+ with:
47
+ persist-credentials: false
48
+ fetch-depth: 0
49
+ fetch-tags: true
50
+
51
+ - name: Set up Python
52
+ uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
53
+ with:
54
+ python-version: "3.x"
55
+
56
+ - name: Get packages
57
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
58
+ with:
59
+ pattern: Packages-*
60
+ merge-multiple: true
61
+ path: dist
62
+
63
+ - name: Install packages
64
+ run: pip install dist/*.whl
65
+
66
+ - name: Check version number
67
+ # Check that the version number of the installed package matches the tag.
68
+ run: |
69
+ set -x
70
+ test $(python -c "import mac_alias; print(mac_alias.__version__)") = $VERSION
71
+
72
+ - name: Create release
73
+ env:
74
+ GH_TOKEN: ${{ github.token }}
75
+ GH_REPO: ${{ github.repository }}
76
+ run: |
77
+ gh release create "${GITHUB_REF_NAME}" \
78
+ --title "$VERSION" \
79
+ --draft \
80
+ --verify-tag \
81
+ dist/*
82
+
83
+ - name: Publish release to Test PyPI
84
+ uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3
85
+ with:
86
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,9 @@
1
+ rules:
2
+ unpinned-uses:
3
+ config:
4
+ # Allow BeeWare-provided actions to be unpinned. If an attacker is in a
5
+ # position to exploit those action, they're probably able to exploit
6
+ # repositories directly; and it's significantly easier for our internal
7
+ # actions to automatically be the most recent versions.
8
+ policies:
9
+ beeware/*: ref-pin
@@ -0,0 +1,14 @@
1
+ .cache
2
+ .coverage
3
+ .eggs
4
+ .tox
5
+ .vscode
6
+ *.egg
7
+ *.egg-info
8
+ *.pyc
9
+ *~
10
+ build
11
+ coverage.xml
12
+ dist
13
+ docs/_build
14
+ venv*
@@ -0,0 +1,20 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v6.0.0
4
+ hooks:
5
+ - id: check-toml
6
+ - id: check-yaml
7
+ - id: check-case-conflict
8
+ - id: check-docstring-first
9
+ - id: end-of-file-fixer
10
+ - id: trailing-whitespace
11
+ - repo: https://github.com/astral-sh/ruff-pre-commit
12
+ rev: v0.17.2
13
+ hooks:
14
+ - id: ruff-format
15
+ - id: ruff-check
16
+ args: [ --fix ]
17
+ - repo: https://github.com/zizmorcore/zizmor-pre-commit
18
+ rev: v1.31.1
19
+ hooks:
20
+ - id: zizmor
@@ -0,0 +1,19 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Set the version of Python and other tools you might need
9
+ build:
10
+ os: ubuntu-22.04
11
+ tools:
12
+ python: "3.12"
13
+ jobs:
14
+ pre_install:
15
+ - python -m pip install --upgrade pip
16
+ - python -m pip install --group tox
17
+ build:
18
+ html:
19
+ - python -m tox -e docs -- $READTHEDOCS_OUTPUT/html/
@@ -0,0 +1,144 @@
1
+ # Release History
2
+
3
+ <!-- towncrier release notes start -->
4
+
5
+ ## 2.2.4 (2026-11-11)
6
+
7
+ ### Features
8
+
9
+ * Support for Python 3.16 was added. ([#234](https://github.com/dmgbuild/mac_alias/issues/234))
10
+
11
+ ### Backward Incompatible Changes
12
+
13
+ * Support for Python 3.10 was dropped. ([#231](https://github.com/dmgbuild/mac_alias/issues/231))
14
+
15
+ ### Misc
16
+
17
+ * [#205](https://github.com/dmgbuild/mac_alias/issues/205), [#206](https://github.com/dmgbuild/mac_alias/issues/206), [#207](https://github.com/dmgbuild/mac_alias/issues/207), [#208](https://github.com/dmgbuild/mac_alias/issues/208), [#209](https://github.com/dmgbuild/mac_alias/issues/209), [#211](https://github.com/dmgbuild/mac_alias/issues/211), [#212](https://github.com/dmgbuild/mac_alias/issues/212), [#213](https://github.com/dmgbuild/mac_alias/issues/213), [#214](https://github.com/dmgbuild/mac_alias/issues/214), [#215](https://github.com/dmgbuild/mac_alias/issues/215), [#216](https://github.com/dmgbuild/mac_alias/issues/216), [#217](https://github.com/dmgbuild/mac_alias/issues/217), [#218](https://github.com/dmgbuild/mac_alias/issues/218), [#220](https://github.com/dmgbuild/mac_alias/issues/220), [#222](https://github.com/dmgbuild/mac_alias/issues/222), [#223](https://github.com/dmgbuild/mac_alias/issues/223), [#224](https://github.com/dmgbuild/mac_alias/issues/224), [#225](https://github.com/dmgbuild/mac_alias/issues/225), [#226](https://github.com/dmgbuild/mac_alias/issues/226), [#227](https://github.com/dmgbuild/mac_alias/issues/227), [#228](https://github.com/dmgbuild/mac_alias/issues/228), [#229](https://github.com/dmgbuild/mac_alias/issues/229), [#230](https://github.com/dmgbuild/mac_alias/issues/230), [#232](https://github.com/dmgbuild/mac_alias/issues/232), [#233](https://github.com/dmgbuild/mac_alias/issues/233), [#235](https://github.com/dmgbuild/mac_alias/issues/235), [#236](https://github.com/dmgbuild/mac_alias/issues/236)
18
+
19
+ ## 2.2.3 (2025-12-04)
20
+
21
+ ### Features
22
+
23
+ * Support for Python 3.13, 3.14 and 3.15 was added.
24
+
25
+ ### Backward Incompatible Changes
26
+
27
+ * Support for Python 3.7, 3.8 and 3.9 was dropped.
28
+
29
+ ### Misc
30
+
31
+ * [#204](https://github.com/dmgbuild/mac_alias/issues/204), [#24](https://github.com/dmgbuild/mac_alias/issues/24)
32
+
33
+ ## 2.2.2 (2022-12-06)
34
+
35
+ ### Bugfixes
36
+
37
+ * `kBookmarkVolumePath` and `kBookmarkVolumeURL` are now correctly exported from the top-level package. ([#20](https://github.com/dmgbuild/mac_alias/issues/20))
38
+
39
+ ## 2.2.1 (2022-11-24)
40
+
41
+ ### Features
42
+
43
+ * The project now uses a PEP 517 compliant build configuration, and declares Python 3.7 to 3.12 as supported versions. ([#19](https://github.com/dmgbuild/mac_alias/issues/19))
44
+
45
+ ### Bugfixes
46
+
47
+ * A stray entry in Alias serialization was removed. ([#12](https://github.com/dmgbuild/mac_alias/issues/12))
48
+
49
+ ### Backward Incompatible Changes
50
+
51
+ * Support for Python 2, and Python 3 versions prior to 3.7 was dropped.
52
+
53
+ ### Misc
54
+
55
+ * [#13](https://github.com/dmgbuild/mac_alias/issues/13), [#14](https://github.com/dmgbuild/mac_alias/issues/14), [#16](https://github.com/dmgbuild/mac_alias/issues/16), [#17](https://github.com/dmgbuild/mac_alias/issues/17)
56
+
57
+ ## 2.2.0 (2020-12-08)
58
+
59
+ ### Features
60
+
61
+ * `osx.py` was updated with definitions from macOS 11 (Big Sur).
62
+
63
+ ### Bugfixes
64
+
65
+ * `statfs` and `fstatfs` are now correctly located on ARM64 (Apple Silicon) machines. ([#11](https://github.com/dmgbuild/mac_alias/issues/11))
66
+
67
+ ## 2.1.1 (2020-11-28)
68
+
69
+ ### Bugfixes
70
+
71
+ * A `NameError` when reading an Alias from a file descriptor was corrected. ([#9](https://github.com/dmgbuild/mac_alias/issues/9))
72
+
73
+ ## 2.1.0 (2020-10-11)
74
+
75
+ ### Features
76
+
77
+ * Tentative support for the Alias v3 format was added.
78
+
79
+ ### Bugfixes
80
+
81
+ * Volume paths are now normalized to NFC form before being compared, avoiding Unicode string comparison issues. ([#7](https://github.com/dmgbuild/mac_alias/issues/7))
82
+
83
+ ## 2.0.7 (2018-02-13)
84
+
85
+ ### Bugfixes
86
+
87
+ * A number of Python 3 compatibility problems were corrected. ([#3](https://github.com/dmgbuild/mac_alias/issues/3))
88
+
89
+ ## 2.0.6 (2017-08-02)
90
+
91
+ ### Features
92
+
93
+ * Bookmarks can now be parsed from `bytearray` data.
94
+
95
+ ### Bugfixes
96
+
97
+ * Stray debugging `print` statements were removed from bookmark generation.
98
+
99
+ ## 2.0.5 (2017-08-02)
100
+
101
+ ### Bugfixes
102
+
103
+ * Byte strings are now used with `struct.pack`, correcting a Python 3 compatibility problem.
104
+
105
+ ## 2.0.4 (2017-07-28)
106
+
107
+ ### Bugfixes
108
+
109
+ * A number of Python 3 compatibility problems were corrected.
110
+
111
+ ## 2.0.2 (2017-07-27)
112
+
113
+ ### Features
114
+
115
+ * A basic test suite was added.
116
+
117
+ ### Bugfixes
118
+
119
+ * A number of Python 3 compatibility problems were corrected.
120
+
121
+ ## 2.0.1 (2017-04-28)
122
+
123
+ ### Bugfixes
124
+
125
+ * Generated bookmarks now use generic ("nobody") user information, rather than details of the author.
126
+
127
+ ## 2.0.0 (2016-12-02)
128
+
129
+ ### Features
130
+
131
+ * Support for reading and generating Bookmark records was added.
132
+
133
+ ## 1.1.0 (2015-10-19)
134
+
135
+ ### Bugfixes
136
+
137
+ * Values provided to the `TargetInfo` initializer are now used, rather than being ignored.
138
+ * Floor division is now used explicitly where required, correcting Python 3 compatibility.
139
+ * The `TAG_APPLESHARE_SERVER_NAME` tag value was corrected.
140
+ * The full path to `libc` is now used, correcting a problem on OS X 10.11 (El Capitan).
141
+
142
+ ## 1.0.0 (2014-02-13)
143
+
144
+ * Initial release.
@@ -1,4 +1,5 @@
1
1
  Copyright (c) 2014 Alastair Houghton
2
+ Copyright (c) 2022 Russell Keith-Magee
2
3
 
3
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
5
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,39 @@
1
+ Metadata-Version: 2.4
2
+ Name: mac_alias
3
+ Version: 2.2.4rc1
4
+ Summary: Generate/parse macOS Alias records from Python
5
+ Author-email: Alastair Houghton <alastair@alastairs-place.net>
6
+ Maintainer-email: Russell Keith-Magee <russell@keith-magee.com>
7
+ License-Expression: MIT
8
+ Project-URL: Documentation, https://mac-alias.readthedocs.io/en/latest/
9
+ Project-URL: Homepage, https://github.com/dmgbuild/mac_alias
10
+ Project-URL: Tracker, https://github.com/dmgbuild/mac_alias/issues
11
+ Project-URL: Source, https://github.com/dmgbuild/mac_alias
12
+ Keywords: mac_alias
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
19
+ Classifier: Programming Language :: Python :: 3.15
20
+ Classifier: Programming Language :: Python :: 3.16
21
+ Classifier: Programming Language :: Python :: 3 :: Only
22
+ Classifier: Topic :: Desktop Environment
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Requires-Python: >=3.11
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Dynamic: license-file
28
+
29
+ # mac_alias
30
+
31
+ [![Python Versions](https://img.shields.io/pypi/pyversions/mac_alias.svg)](https://pypi.python.org/pypi/mac_alias) [![PyPI Version](https://img.shields.io/pypi/v/mac_alias.svg)](https://pypi.python.org/pypi/mac_alias) [![Maturity](https://img.shields.io/pypi/status/mac_alias.svg)](https://pypi.python.org/pypi/mac_alias) [![MIT License](https://img.shields.io/pypi/l/mac_alias.svg)](https://github.com/dmgbuild/mac_alias/blob/main/LICENSE) [![Build status](https://github.com/dmgbuild/mac_alias/workflows/CI/badge.svg?branch=main)](https://github.com/dmgbuild/mac_alias/actions)
32
+
33
+ `mac_alias` lets you generate or read binary Alias and Bookmark records from Python code.
34
+
35
+ While it is written in pure Python, some macOS specific code is required to generate a proper Alias or Bookmark record for a given file, so this module currently is not portable to other platforms.
36
+
37
+ Credit is due to Wim Lewis <wiml@hhhh.org>, whose work on reverse engineering the alias format was extremely useful in writing this code. Alastair Houghton <alastair@alastairs-place.net> was responsible for reverse engineering the bookmark format.
38
+
39
+ See the [documentation](https://mac-alias.readthedocs.io) for more information.
@@ -0,0 +1,11 @@
1
+ # mac_alias
2
+
3
+ [![Python Versions](https://img.shields.io/pypi/pyversions/mac_alias.svg)](https://pypi.python.org/pypi/mac_alias) [![PyPI Version](https://img.shields.io/pypi/v/mac_alias.svg)](https://pypi.python.org/pypi/mac_alias) [![Maturity](https://img.shields.io/pypi/status/mac_alias.svg)](https://pypi.python.org/pypi/mac_alias) [![MIT License](https://img.shields.io/pypi/l/mac_alias.svg)](https://github.com/dmgbuild/mac_alias/blob/main/LICENSE) [![Build status](https://github.com/dmgbuild/mac_alias/workflows/CI/badge.svg?branch=main)](https://github.com/dmgbuild/mac_alias/actions)
4
+
5
+ `mac_alias` lets you generate or read binary Alias and Bookmark records from Python code.
6
+
7
+ While it is written in pure Python, some macOS specific code is required to generate a proper Alias or Bookmark record for a given file, so this module currently is not portable to other platforms.
8
+
9
+ Credit is due to Wim Lewis <wiml@hhhh.org>, whose work on reverse engineering the alias format was extremely useful in writing this code. Alastair Houghton <alastair@alastairs-place.net> was responsible for reverse engineering the bookmark format.
10
+
11
+ See the [documentation](https://mac-alias.readthedocs.io) for more information.
@@ -0,0 +1,29 @@
1
+ {% for section, _ in sections.items() %}
2
+ {% if section %}
3
+ {{section}}
4
+
5
+ {% endif %}
6
+
7
+ {% if sections[section] %}
8
+ {% for category, val in definitions.items() if category in sections[section]%}
9
+ ### {{ definitions[category]['name'] }}
10
+
11
+ {% if definitions[category]['showcontent'] %}
12
+ {% for text, values in sections[section][category].items() %}
13
+ * {{ text }} ({{ values|join(', ') }})
14
+ {% endfor %}
15
+ {% else %}
16
+ * {{ sections[section][category]['']|join(', ') }}
17
+ {% endif %}
18
+ {% if sections[section][category]|length == 0 %}
19
+ No significant changes.
20
+
21
+ {% else %}
22
+ {% endif %}
23
+
24
+ {% endfor %}
25
+ {% else %}
26
+ No significant changes.
27
+
28
+ {% endif %}
29
+ {% endfor %}
@@ -49,7 +49,7 @@ Offset Size Contents
49
49
  28 4 Target CNID
50
50
  32 8 Target creation date (65536ths of a second since 1904-01-01 00:00:00 UTC)
51
51
  40 4 Volume attributes
52
- 54 14 Reserved (set to zero)
52
+ 44 14 Reserved (set to zero)
53
53
  ====== ==== ========
54
54
 
55
55
  This record is optionally followed by tag-length-value data:
@@ -12,8 +12,8 @@
12
12
  # serve to show the default.
13
13
 
14
14
  import os
15
- import re
16
15
  import sys
16
+ from importlib.metadata import version
17
17
 
18
18
  # If extensions (or modules to document with autodoc) are in another directory,
19
19
  # add these directories to sys.path here. If the directory is relative to the
@@ -57,14 +57,7 @@ copyright = "2014-2020, Alastair Houghton"
57
57
  # built documents.
58
58
  #
59
59
  # The full version, including alpha/beta/rc tags.
60
- with open("../src/mac_alias/__init__.py", encoding="utf8") as version_file:
61
- version_match = re.search(
62
- r"^__version__ = ['\"]([^'\"]*)['\"]", version_file.read(), re.M
63
- )
64
- if version_match:
65
- release = version_match.group(1)
66
- else:
67
- raise RuntimeError("Unable to find version string.")
60
+ release = version("mac_alias")
68
61
 
69
62
  # The short X.Y version.
70
63
  version = ".".join(release.split(".")[:2])
@@ -112,7 +105,7 @@ pygments_style = "sphinx"
112
105
 
113
106
  # The theme to use for HTML and HTML Help pages. See the documentation for
114
107
  # a list of builtin themes.
115
- html_theme = "default"
108
+ html_theme = "furo"
116
109
 
117
110
  # Theme options are theme-specific and customize the look and feel of a theme
118
111
  # further. For a list of options available for each theme, see the
@@ -14,6 +14,10 @@ Classes
14
14
  :members:
15
15
  :undoc-members:
16
16
 
17
+ .. autoclass:: VolumeInfo
18
+ :members:
19
+ :undoc-members:
20
+
17
21
  .. autoclass:: TargetInfo
18
22
  :members:
19
23
  :undoc-members:
@@ -36,7 +40,7 @@ Constants
36
40
  .. py:data:: ALIAS_KIND_FILE
37
41
  ALIAS_KIND_FOLDER
38
42
 
39
- Values for the :attr:`~mac_alias.Alias.kind` attribute.
43
+ Values for the :attr:`TargetInfo.kind` attribute.
40
44
 
41
45
  .. py:data:: ALIAS_HFS_VOLUME_SIGNATURE
42
46
 
@@ -51,7 +55,7 @@ Constants
51
55
  ALIAS_FILESYSTEM_NTFS
52
56
  ALIAS_FILESYSTEM_UNKNOWN
53
57
 
54
- Values returned by the :attr:`~mac_alias.Alias.filesystem_type` attribute.
58
+ Values returned by the :attr:`VolumeInfo.filesystem_type` attribute.
55
59
 
56
60
  .. py:data:: ALIAS_FIXED_DISK
57
61
  ALIAS_NETWORK_DISK