passthrough-support-excludeglob-fs


Namepassthrough-support-excludeglob-fs JSON
Version 1.17 PyPI version JSON
download
home_pagehttps://github.com/AntonyDalmiere/passthrough_support_globexclude_fuse_fs
SummaryA user-space filesystem that allows to exclude files from being shown in the filesystem using glob patterns
upload_time2024-08-08 11:07:10
maintainerNone
docs_urlNone
authorAntony Dalmiere
requires_pythonNone
licenseCC BY-NC-NDA 4.0
keywords fuse filesystem passthrough excludeglob
VCS
bugtrack_url
requirements refuse globmatch appdirs psutil str2type syslog2 pylnk3
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PassthroughSupportExcludeGlobFS: A Union Filesystem with Glob Pattern Exclusion

![Pepy Total Downlods](https://img.shields.io/pepy/dt/passthrough-support-excludeglob-fs)
![PyPI - Version](https://img.shields.io/pypi/v/passthrough-support-excludeglob-fs)
[![CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey.svg)](http://creativecommons.org/licenses/by-nc-nd/4.0/)

PassthroughSupportExcludeGlobFS is a user-space filesystem (FUSE) written in Python that provides a union mount functionality with the added power of glob pattern exclusion. It allows you to seamlessly merge the contents of two directories, while selectively excluding files or folders based on flexible glob patterns.

## Key Features

- **Union Mount:** Combine the contents of two directories into a single, unified view.
- **Glob Pattern Exclusion:** Fine-grained control over which files and directories are included or excluded from two directories.
- **Cross-Platform:** Works seamlessly on Linux, macOS (in theory but untested), and Windows.
- **Easy to Use:** Simple CLI interface and Python API for integration into your projects.

## Use Cases

- **Configuration Management:** Overlay custom configurations on top of default settings.
- **Data Versioning:** Track changes to files and directories by maintaining a separate "cache" directory.
- **Selective Syncing:** Synchronize only specific files or folders between two locations.
- **Sandboxing:** Isolate applications or processes by redirecting specific files or directories to a controlled environment.
- **Development Workflows:** Manage different versions of code or assets by merging and excluding specific files.

## Installation

### Prerequisites

- **Python 3.6 or higher**
- **FUSE library:**
    - **Linux:** Install the `fuse` package using your distribution's package manager (e.g., `apt-get install fuse` on Debian/Ubuntu).
    - **macOS:** Install [OSXFUSE](https://osxfuse.github.io/).
    - **Windows:** Install [WinFsp](https://winfsp.dev/).

### Installing PassthroughSupportExcludeGlobFS

```bash
pip install passthrough-support-excludeglob-fs
```

## Usage

### Command-Line Interface

```
passthrough_support_excludeglob_fs <mountpoint> -o root=<root_directory>,[options]
```

**Options:**

- `root=<root_directory>`: The path to the lower directory (required). Use `\` to escape `,` and `=`.
- `patterns=<pattern1:pattern2:patternN>`: A colon-separated list of glob patterns to exclude from root. All files and directories matching these patterns will be stored in the cache directory (default none). Use `\` to escape `:`.
- `cache_dir=<cache_directory>`: The path to the upper directory (defaults to a cache directory within the user's cache folder). Use `\` to escape `,` and `=`.
- `uid=<user_id>`: The user ID to own the mounted filesystem (defaults to the current user).
- `gid=<group_id>`: The group ID to own the mounted filesystem (defaults to the current group).
- `foreground=<True|False>`: Run PassthroughSupportExcludeGlobFS in the foreground (default true).
- `nothreads=<True|False>`: Disable multi-threading (default true because untested).
- `overwrite_rename_dest=<True|False>`: When renaming, if `True`, overwrite the destination file if it already exists. If `False`, the rename operation will fail if the destination file already exists. The default behavior is `False` on Windows and `True` on Linux and macOS.
- `debug=<True|False>`: Enable logging. Default is `False`. It must be enabled to use the `log_in_file`, `log_in_console` and `log_in_syslog` options. It is independent of `fusedebug` option. Be careful, it can generate a lot of logs.
  - `log_in_syslog=<True|False>`: Log to the system log. Default is `False`. To use this option on Windows and so that the log is visible in the Windows Event Viewer, you must run the program as an administrator. However, it is not recommended to use this option on Windows because it can saturate the WIndows system log.
  - `log_in_file=<log_file_path|None>`: Log to a file instead of the console. Default is `None` which means no log file.
  - `log_in_console=<True|False>`: Log to the console. Default is `True`.
- `fusedebug=<True|False>`: Enable native FUSE debugging. Default is `False`. It is independent of `debug`, `log_in_file`, `log_in_console` and `log_in_syslog` options and always prints to the console. Be careful, it can also generate a lot of logs.
- `symlink_creation_windows=<skip|error|copy|create_lnkfile|real_symlink>`: Define how to handle symlinks created on Windows. Default is `real_symlink` with fallback to `error` if there is insufficient privileges. The possible values are:
  - `skip`: Skip the symlink creation. Fail silently.
  - `error`: Raise an error at the time of symlink creation.
  - `copy`: Copy the target file to the symlink location.
  - `create_lnkfile`: Create a new lnk file in the symlink location. Also resolve .lnk files as symlinks.
  - `real_symlink`: Real Windows symlink. Backed by NTFS ReparsePoint. Requires administrator privileges.
- `rellinks=<True|False>`: Convert POSIX absolute symlinks to drive-relative symlinks. Default is `True` on Windows (mandatory for symlinks to work) and `False` on Linux and macOS.



**Example 1:**

```bash
passthrough_support_excludeglob_fs /mnt/union -o root=/path/to/lower,patterns='**/*.log/*:**/*.tmp/*'
```

This command will mount a union filesystem at `/mnt/union`, merging the contents of `/path/to/lower` with a cache directory. All files matching the patterns `**/*.log/*` and `**/*.tmp/*` will be excluded from the root directory and stored somewhere in the cache directory.

**Example 2:**


```bash
passthrough_support_excludeglob_fs /mnt/union -o root=/path/to/lower,patterns='**/*.log/*:**/*.tmp/*',cache_dir=/path/to/cache
```

This command will mount a union filesystem at `/mnt/union`, merging the contents of `/path/to/lower` with a cache directory. All files matching the patterns `**/*.log/*` and `**/*.tmp/*` will be excluded from the root directory and stored in the cache directory `/path/to/cache`.

**Example 3:**

```bash
passthrough_support_excludeglob_fs /mnt/union -o root=/path/to/lower,patterns='**/*.log/*:**/*.tmp/*',cache_dir=/path/to/cache,overwrite_rename_dest=True
```

Same as above but can resolve issues with renaming files.

**Example 4:**

```bash
passthrough_support_excludeglob_fs /mnt/union -o root=/path/to/lower,patterns='**/*.log/*:**/*.tmp/*',cache_dir=/path/to/cache,overwrite_rename_dest=True,debug=True
```

Same as above but with debug enabled.

### Python API

```python
from passthrough_support_excludeglob_fs import start_passthrough_fs

# Start the filesystem
start_passthrough_fs(mountpoint='/mnt/union', root='/path/to/lower', patterns=['**/*.log/*', '**/*.tmp/*'], cache_dir='/path/to/cache' )
```
Like in the CLI, it will mount a union filesystem at `/mnt/union`, merging the contents of `/path/to/lower` with a cache directory. All files matching the patterns `**/*.log/*` and `**/*.tmp/*` will be excluded from the root directory and stored somewhere in the cache directory. The function is blocking and return only if a fatal error in the filesystem occurs. Note the function provide type hints.


## Glob Pattern Syntax

PassthroughSupportExcludeGlobFS uses the [globmatch](https://pypi.org/project/globmatch/2.0.0/) library for glob pattern matching. The following wildcards are supported:

- `*`: Matches any number of characters (including zero).
- `?`: Matches any single character.
- `[abc]`: Matches any character within the brackets.
- `[a-z]`: Matches any character within the range.
- `{a,b,c}`: Matches any of the patterns within the braces.
- `**`: Matches any number of directories recursively.

## Contributing

Contributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines.

## License

PassthroughSupportExcludeGlobFS is licensed under the CC-BY-NC-ND License. See the [LICENCE](LICENCE) file for details.



## FAQ

**Q: What sets `passthrough_support_excludeglob_fs` apart from other union filesystems like UnionFS, OverlayFS, and mergerfs?**

**A:** `passthrough_support_excludeglob_fs` offers a unique combination of union mount capabilities with glob pattern exclusion. This allows you to merge directories while precisely controlling which files and folders are included or excluded. It's particularly useful for selective syncing and providing flexibility that other union filesystems might not offer allowing you to do *selective mouting*.

**Q: How do I unmount the filesystem?**

**A:** On Linux and macOS, you can use the `fusermount -u <mountpoint>` command. On Windows, you can use the "Unmount" option in the WinFsp context menu for the mountpoint.

**Q: Can I use multiple glob patterns for exclusion?**

**A:** Yes, you can specify multiple glob patterns separated by colons (`:`) in the `patterns` option.

**Q: What happens if a file exists in both the root and cache directories?**

**A:** The most recent file take precedence.

**Q: What happen if an excluded file already exist on root directory?**

**A:** The file will be moved automatically to the cache directory at the first access. 

**Q: Can I exclude entire directories?**

**A:** Yes, you can use glob patterns that match directory names, such as `**/logs` to exclude the entire `logs` directory and its contents.

**Q: Is PassthroughSupportExcludeGlobFS compatible with symbolic links?**

**A:** Yes, PassthroughSupportExcludeGlobFS supports symbolic links. However some behavior may be unexpected with relative target links. Note `mklink` is untested on Windows.


**Q: Can I use PassthroughSupportExcludeGlobFS in a production environment?**

**A:** PassthroughSupportExcludeGlobFS is intended for testing and development purposes. While it is stable, it may not be suitable for production use.

**Q: Why the CLI options are weird?**

**A:** The CLI options are designed to be consistent with the mount options. This allows you to use PassthroughSupportExcludeGlobFS with existing FUSE tools and libraries.

**Q: Why it is slow to access files?**

**A:** The first access to a misplaced file will trigger a move operation to the right directory. This operation can be slow for large files or directories. However it should be fast for subsequent accesses.

**Q: What is the default cache directory?**

**A:** The default cache directory is a subdirectory within the user's cache folder. On Linux and macOS, this is typically `~/.cache/passthrough-support-excludeglob-fs`. On Windows, it is `%LOCALAPPDATA%\passthrough-support-excludeglob-fs`. The name of the subdirectory is then the base64 encoded root directory path.

For example, if the root directory is `/home/user/doc`, the cache directory will be `~/.cache/passthrough-support-excludeglob-fs/L2hvbWUvdXNlci9kb2M=`.

**Q: What are common bugs?**

**A:** Common know bugs:
- Metadata time (`ctime`,`atime`,`mtime`) are sometime updated even if the file is not accessed or modified. It can happen during the first access of a misplaced file.
- The filesystem is not thread safe. It is recommended to keep the `nothreads` option to `True`.
- Instability with .lnk backed symlinks on Windows.
- Exclude glob patterns should never be relative to root directory. It is recommended to always prefix with `**/`.
- The rename operation can be slow because it is internally implemented with a copy-and-delete operation. This operation can be slow for large files or directories. It is implemented this way to mitigate the non-deterministic order of operations. For example, the kernel or FUSE may reorder the operations and block the rename operation.

**Q: How can I contribute to PassthroughSupportExcludeGlobFS?**

**A:** We welcome contributions! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines on reporting issues, submitting pull requests, and contributing to the project.

**Q: Where can I get help or ask questions?**

**A:** You can open an issue on the GitHub repository.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/AntonyDalmiere/passthrough_support_globexclude_fuse_fs",
    "name": "passthrough-support-excludeglob-fs",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "fuse, filesystem, passthrough, excludeglob",
    "author": "Antony Dalmiere",
    "author_email": "zbkk9jrxo@mozmail.com",
    "download_url": "https://files.pythonhosted.org/packages/c7/c6/d9e085110b2097b7c9a464317923f1244cb5815b914ed1560e4f67ec6ccf/passthrough_support_excludeglob_fs-1.17.tar.gz",
    "platform": null,
    "description": "# PassthroughSupportExcludeGlobFS: A Union Filesystem with Glob Pattern Exclusion\n\n![Pepy Total Downlods](https://img.shields.io/pepy/dt/passthrough-support-excludeglob-fs)\n![PyPI - Version](https://img.shields.io/pypi/v/passthrough-support-excludeglob-fs)\n[![CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC%20BY--NC--ND%204.0-lightgrey.svg)](http://creativecommons.org/licenses/by-nc-nd/4.0/)\n\nPassthroughSupportExcludeGlobFS is a user-space filesystem (FUSE) written in Python that provides a union mount functionality with the added power of glob pattern exclusion. It allows you to seamlessly merge the contents of two directories, while selectively excluding files or folders based on flexible glob patterns.\n\n## Key Features\n\n- **Union Mount:** Combine the contents of two directories into a single, unified view.\n- **Glob Pattern Exclusion:** Fine-grained control over which files and directories are included or excluded from two directories.\n- **Cross-Platform:** Works seamlessly on Linux, macOS (in theory but untested), and Windows.\n- **Easy to Use:** Simple CLI interface and Python API for integration into your projects.\n\n## Use Cases\n\n- **Configuration Management:** Overlay custom configurations on top of default settings.\n- **Data Versioning:** Track changes to files and directories by maintaining a separate \"cache\" directory.\n- **Selective Syncing:** Synchronize only specific files or folders between two locations.\n- **Sandboxing:** Isolate applications or processes by redirecting specific files or directories to a controlled environment.\n- **Development Workflows:** Manage different versions of code or assets by merging and excluding specific files.\n\n## Installation\n\n### Prerequisites\n\n- **Python 3.6 or higher**\n- **FUSE library:**\n    - **Linux:** Install the `fuse` package using your distribution's package manager (e.g., `apt-get install fuse` on Debian/Ubuntu).\n    - **macOS:** Install [OSXFUSE](https://osxfuse.github.io/).\n    - **Windows:** Install [WinFsp](https://winfsp.dev/).\n\n### Installing PassthroughSupportExcludeGlobFS\n\n```bash\npip install passthrough-support-excludeglob-fs\n```\n\n## Usage\n\n### Command-Line Interface\n\n```\npassthrough_support_excludeglob_fs <mountpoint> -o root=<root_directory>,[options]\n```\n\n**Options:**\n\n- `root=<root_directory>`: The path to the lower directory (required). Use `\\` to escape `,` and `=`.\n- `patterns=<pattern1:pattern2:patternN>`: A colon-separated list of glob patterns to exclude from root. All files and directories matching these patterns will be stored in the cache directory (default none). Use `\\` to escape `:`.\n- `cache_dir=<cache_directory>`: The path to the upper directory (defaults to a cache directory within the user's cache folder). Use `\\` to escape `,` and `=`.\n- `uid=<user_id>`: The user ID to own the mounted filesystem (defaults to the current user).\n- `gid=<group_id>`: The group ID to own the mounted filesystem (defaults to the current group).\n- `foreground=<True|False>`: Run PassthroughSupportExcludeGlobFS in the foreground (default true).\n- `nothreads=<True|False>`: Disable multi-threading (default true because untested).\n- `overwrite_rename_dest=<True|False>`: When renaming, if `True`, overwrite the destination file if it already exists. If `False`, the rename operation will fail if the destination file already exists. The default behavior is `False` on Windows and `True` on Linux and macOS.\n- `debug=<True|False>`: Enable logging. Default is `False`. It must be enabled to use the `log_in_file`, `log_in_console` and `log_in_syslog` options. It is independent of `fusedebug` option. Be careful, it can generate a lot of logs.\n  - `log_in_syslog=<True|False>`: Log to the system log. Default is `False`. To use this option on Windows and so that the log is visible in the Windows Event Viewer, you must run the program as an administrator. However, it is not recommended to use this option on Windows because it can saturate the WIndows system log.\n  - `log_in_file=<log_file_path|None>`: Log to a file instead of the console. Default is `None` which means no log file.\n  - `log_in_console=<True|False>`: Log to the console. Default is `True`.\n- `fusedebug=<True|False>`: Enable native FUSE debugging. Default is `False`. It is independent of `debug`, `log_in_file`, `log_in_console` and `log_in_syslog` options and always prints to the console. Be careful, it can also generate a lot of logs.\n- `symlink_creation_windows=<skip|error|copy|create_lnkfile|real_symlink>`: Define how to handle symlinks created on Windows. Default is `real_symlink` with fallback to `error` if there is insufficient privileges. The possible values are:\n  - `skip`: Skip the symlink creation. Fail silently.\n  - `error`: Raise an error at the time of symlink creation.\n  - `copy`: Copy the target file to the symlink location.\n  - `create_lnkfile`: Create a new lnk file in the symlink location. Also resolve .lnk files as symlinks.\n  - `real_symlink`: Real Windows symlink. Backed by NTFS ReparsePoint. Requires administrator privileges.\n- `rellinks=<True|False>`: Convert POSIX absolute symlinks to drive-relative symlinks. Default is `True` on Windows (mandatory for symlinks to work) and `False` on Linux and macOS.\n\n\n\n**Example 1:**\n\n```bash\npassthrough_support_excludeglob_fs /mnt/union -o root=/path/to/lower,patterns='**/*.log/*:**/*.tmp/*'\n```\n\nThis command will mount a union filesystem at `/mnt/union`, merging the contents of `/path/to/lower` with a cache directory. All files matching the patterns `**/*.log/*` and `**/*.tmp/*` will be excluded from the root directory and stored somewhere in the cache directory.\n\n**Example 2:**\n\n\n```bash\npassthrough_support_excludeglob_fs /mnt/union -o root=/path/to/lower,patterns='**/*.log/*:**/*.tmp/*',cache_dir=/path/to/cache\n```\n\nThis command will mount a union filesystem at `/mnt/union`, merging the contents of `/path/to/lower` with a cache directory. All files matching the patterns `**/*.log/*` and `**/*.tmp/*` will be excluded from the root directory and stored in the cache directory `/path/to/cache`.\n\n**Example 3:**\n\n```bash\npassthrough_support_excludeglob_fs /mnt/union -o root=/path/to/lower,patterns='**/*.log/*:**/*.tmp/*',cache_dir=/path/to/cache,overwrite_rename_dest=True\n```\n\nSame as above but can resolve issues with renaming files.\n\n**Example 4:**\n\n```bash\npassthrough_support_excludeglob_fs /mnt/union -o root=/path/to/lower,patterns='**/*.log/*:**/*.tmp/*',cache_dir=/path/to/cache,overwrite_rename_dest=True,debug=True\n```\n\nSame as above but with debug enabled.\n\n### Python API\n\n```python\nfrom passthrough_support_excludeglob_fs import start_passthrough_fs\n\n# Start the filesystem\nstart_passthrough_fs(mountpoint='/mnt/union', root='/path/to/lower', patterns=['**/*.log/*', '**/*.tmp/*'], cache_dir='/path/to/cache' )\n```\nLike in the CLI, it will mount a union filesystem at `/mnt/union`, merging the contents of `/path/to/lower` with a cache directory. All files matching the patterns `**/*.log/*` and `**/*.tmp/*` will be excluded from the root directory and stored somewhere in the cache directory. The function is blocking and return only if a fatal error in the filesystem occurs. Note the function provide type hints.\n\n\n## Glob Pattern Syntax\n\nPassthroughSupportExcludeGlobFS uses the [globmatch](https://pypi.org/project/globmatch/2.0.0/) library for glob pattern matching. The following wildcards are supported:\n\n- `*`: Matches any number of characters (including zero).\n- `?`: Matches any single character.\n- `[abc]`: Matches any character within the brackets.\n- `[a-z]`: Matches any character within the range.\n- `{a,b,c}`: Matches any of the patterns within the braces.\n- `**`: Matches any number of directories recursively.\n\n## Contributing\n\nContributions are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines.\n\n## License\n\nPassthroughSupportExcludeGlobFS is licensed under the CC-BY-NC-ND License. See the [LICENCE](LICENCE) file for details.\n\n\n\n## FAQ\n\n**Q: What sets `passthrough_support_excludeglob_fs` apart from other union filesystems like UnionFS, OverlayFS, and mergerfs?**\n\n**A:** `passthrough_support_excludeglob_fs` offers a unique combination of union mount capabilities with glob pattern exclusion. This allows you to merge directories while precisely controlling which files and folders are included or excluded. It's particularly useful for selective syncing and providing flexibility that other union filesystems might not offer allowing you to do *selective mouting*.\n\n**Q: How do I unmount the filesystem?**\n\n**A:** On Linux and macOS, you can use the `fusermount -u <mountpoint>` command. On Windows, you can use the \"Unmount\" option in the WinFsp context menu for the mountpoint.\n\n**Q: Can I use multiple glob patterns for exclusion?**\n\n**A:** Yes, you can specify multiple glob patterns separated by colons (`:`) in the `patterns` option.\n\n**Q: What happens if a file exists in both the root and cache directories?**\n\n**A:** The most recent file take precedence.\n\n**Q: What happen if an excluded file already exist on root directory?**\n\n**A:** The file will be moved automatically to the cache directory at the first access. \n\n**Q: Can I exclude entire directories?**\n\n**A:** Yes, you can use glob patterns that match directory names, such as `**/logs` to exclude the entire `logs` directory and its contents.\n\n**Q: Is PassthroughSupportExcludeGlobFS compatible with symbolic links?**\n\n**A:** Yes, PassthroughSupportExcludeGlobFS supports symbolic links. However some behavior may be unexpected with relative target links. Note `mklink` is untested on Windows.\n\n\n**Q: Can I use PassthroughSupportExcludeGlobFS in a production environment?**\n\n**A:** PassthroughSupportExcludeGlobFS is intended for testing and development purposes. While it is stable, it may not be suitable for production use.\n\n**Q: Why the CLI options are weird?**\n\n**A:** The CLI options are designed to be consistent with the mount options. This allows you to use PassthroughSupportExcludeGlobFS with existing FUSE tools and libraries.\n\n**Q: Why it is slow to access files?**\n\n**A:** The first access to a misplaced file will trigger a move operation to the right directory. This operation can be slow for large files or directories. However it should be fast for subsequent accesses.\n\n**Q: What is the default cache directory?**\n\n**A:** The default cache directory is a subdirectory within the user's cache folder. On Linux and macOS, this is typically `~/.cache/passthrough-support-excludeglob-fs`. On Windows, it is `%LOCALAPPDATA%\\passthrough-support-excludeglob-fs`. The name of the subdirectory is then the base64 encoded root directory path.\n\nFor example, if the root directory is `/home/user/doc`, the cache directory will be `~/.cache/passthrough-support-excludeglob-fs/L2hvbWUvdXNlci9kb2M=`.\n\n**Q: What are common bugs?**\n\n**A:** Common know bugs:\n- Metadata time (`ctime`,`atime`,`mtime`) are sometime updated even if the file is not accessed or modified. It can happen during the first access of a misplaced file.\n- The filesystem is not thread safe. It is recommended to keep the `nothreads` option to `True`.\n- Instability with .lnk backed symlinks on Windows.\n- Exclude glob patterns should never be relative to root directory. It is recommended to always prefix with `**/`.\n- The rename operation can be slow because it is internally implemented with a copy-and-delete operation. This operation can be slow for large files or directories. It is implemented this way to mitigate the non-deterministic order of operations. For example, the kernel or FUSE may reorder the operations and block the rename operation.\n\n**Q: How can I contribute to PassthroughSupportExcludeGlobFS?**\n\n**A:** We welcome contributions! Please see our [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines on reporting issues, submitting pull requests, and contributing to the project.\n\n**Q: Where can I get help or ask questions?**\n\n**A:** You can open an issue on the GitHub repository.\n",
    "bugtrack_url": null,
    "license": "CC BY-NC-NDA 4.0",
    "summary": "A user-space filesystem that allows to exclude files from being shown in the filesystem using glob patterns",
    "version": "1.17",
    "project_urls": {
        "Homepage": "https://github.com/AntonyDalmiere/passthrough_support_globexclude_fuse_fs"
    },
    "split_keywords": [
        "fuse",
        " filesystem",
        " passthrough",
        " excludeglob"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "298cd081e7c4cba5003722e318f857bc07a6945918cd0f18b82e48b300818463",
                "md5": "f149d4ae98ba428bf0adc6d37d21277f",
                "sha256": "efcf3e3c1921fc4c6be94f8dee964d116593d2d8ce4b1f3713729cf11d06c91a"
            },
            "downloads": -1,
            "filename": "passthrough_support_excludeglob_fs-1.17-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f149d4ae98ba428bf0adc6d37d21277f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 21395,
            "upload_time": "2024-08-08T11:07:08",
            "upload_time_iso_8601": "2024-08-08T11:07:08.158867Z",
            "url": "https://files.pythonhosted.org/packages/29/8c/d081e7c4cba5003722e318f857bc07a6945918cd0f18b82e48b300818463/passthrough_support_excludeglob_fs-1.17-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c7c6d9e085110b2097b7c9a464317923f1244cb5815b914ed1560e4f67ec6ccf",
                "md5": "7b96d69987b15acdcbef94310c64495f",
                "sha256": "a4e2c8d6cbe0e2169aad838ab1605af999cb6fb12314fa3894129c16c1d1b7a8"
            },
            "downloads": -1,
            "filename": "passthrough_support_excludeglob_fs-1.17.tar.gz",
            "has_sig": false,
            "md5_digest": "7b96d69987b15acdcbef94310c64495f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 24804,
            "upload_time": "2024-08-08T11:07:10",
            "upload_time_iso_8601": "2024-08-08T11:07:10.884385Z",
            "url": "https://files.pythonhosted.org/packages/c7/c6/d9e085110b2097b7c9a464317923f1244cb5815b914ed1560e4f67ec6ccf/passthrough_support_excludeglob_fs-1.17.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-08 11:07:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "AntonyDalmiere",
    "github_project": "passthrough_support_globexclude_fuse_fs",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "refuse",
            "specs": [
                [
                    "==",
                    "0.0.4"
                ]
            ]
        },
        {
            "name": "globmatch",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "appdirs",
            "specs": [
                [
                    "==",
                    "1.4.4"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    "==",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "str2type",
            "specs": [
                [
                    "==",
                    "0.4.1"
                ]
            ]
        },
        {
            "name": "syslog2",
            "specs": [
                [
                    "==",
                    "0.5.0"
                ]
            ]
        },
        {
            "name": "pylnk3",
            "specs": [
                [
                    "==",
                    "0.4.2"
                ]
            ]
        }
    ],
    "lcname": "passthrough-support-excludeglob-fs"
}
        
Elapsed time: 0.32487s