Compare commits

64 Commits

Author SHA1 Message Date
fb4e8a3be6 back to an working state 2025-10-02 20:47:40 +02:00
36333b3b99 removed redundant TODO 2025-10-02 15:50:58 +02:00
91e474c3b8 added TODO comments 2025-10-02 15:46:24 +02:00
e8ef3c6e53 added TODO comments 2025-10-02 15:40:36 +02:00
f4f5f9bc6b split decider and input_validator 2025-10-02 15:12:04 +02:00
3c1d881de7 cleanup 2025-10-02 15:11:40 +02:00
b4e5694b7b update README 2025-10-02 13:41:46 +02:00
691b68cb4c modified .gitignore 2025-10-01 22:20:23 +02:00
461533b717 new decicion logic WIP 2025-10-01 16:07:08 +02:00
caff94ab41 decider WIP 2025-10-01 08:06:26 +02:00
efcec653cb refactor librefit and added docstrings 2025-09-30 20:56:27 +02:00
a0f2f83a8a refactor get_standard_name_number() and added proper docstring 2025-09-30 17:46:36 +02:00
af80345ff6 refactor get_standard_folder_name() and added proper docstring 2025-09-30 17:21:12 +02:00
f96d9b3257 test 2025-09-30 15:56:23 +02:00
b0e3594b49 added proper docstring and refactored get_standard_file_name() 2025-09-30 09:35:25 +02:00
cf828c7f97 update a Docstring to better explain the __call__ function 2025-09-30 08:05:00 +02:00
49e16a522c added comments to file creation function 2025-09-30 07:59:02 +02:00
927d5358f5 update Version 2025-09-29 22:23:19 +02:00
0bbfb9b9bf made the current directory the default input 2025-09-29 22:03:53 +02:00
a012f8f1e2 update README.md 2025-09-29 22:02:46 +02:00
394b940841 update README.md 2025-09-29 21:49:19 +02:00
b615f52313 added file creation 2025-09-29 21:38:42 +02:00
799e0239a1 update README.md 2025-09-29 21:37:50 +02:00
5270fab084 update README 2025-09-29 20:13:34 +02:00
5469a01c09 logging improvements 2025-09-29 20:11:16 +02:00
9b86007e34 trying to get the tests to run 2025-09-29 17:51:56 +02:00
40bf210067 added gewt_default_file_name() and wrote tests 2025-09-29 15:36:18 +02:00
ae19816da1 update .gitignore 2025-09-28 21:18:35 +02:00
d2041c5355 added filemode 2025-09-28 19:51:06 +02:00
c8bf85cb6a added version file 2025-09-28 18:10:05 +02:00
9dcaacf64a added versioning 2025-09-28 18:05:03 +02:00
b82a04e3bb update .gitignore 2025-09-28 18:04:11 +02:00
29924ffb36 added librefit 2025-09-28 17:32:07 +02:00
b09ea6a8c5 Merge remote-tracking branch 'refs/remotes/origin/main' 2025-09-28 17:21:15 +02:00
209fae5575 cosmetics 2025-09-28 17:20:51 +02:00
37fe1f5203 modified to use librefit 2025-09-28 17:19:44 +02:00
c48e16fdb9 created librefit for general functions 2025-09-28 17:19:20 +02:00
67b61a3d5f update README 2025-09-28 14:02:11 +02:00
2425e0a215 update refit version 2025-09-28 14:00:45 +02:00
6738f73db7 create class 2025-09-28 13:53:10 +02:00
e99ee7925f update logger 2025-09-28 13:52:40 +02:00
d910027bc0 update refit.py with Refit_Create() class 2025-09-28 13:51:53 +02:00
2dc233eef0 update README 2025-09-28 13:48:57 +02:00
09563a997c made some minor adjustments 2025-09-28 09:25:08 +02:00
a26367c0aa update README 2025-09-27 20:54:27 +02:00
8bc7bf5584 introduced src 2025-09-27 20:53:07 +02:00
b3834f4798 update .gitignore 2025-09-27 19:15:43 +02:00
f0a7ea1874 update .gitignore 2025-09-27 19:14:43 +02:00
c41ff7e0f5 fixed the usage program name from upper to lower case 2025-09-27 19:05:44 +02:00
78f8c991bd update README 2025-09-27 19:03:00 +02:00
a54d8bdced added logging 2025-09-27 17:31:58 +02:00
518ca3d815 added version flag and its output 2025-09-27 15:29:34 +02:00
9c4135cb3c update README 2025-09-27 15:22:49 +02:00
75a8158b9f update README 2025-09-27 15:21:57 +02:00
88c0e4df43 update README 2025-09-27 15:20:57 +02:00
f45f549da3 update README 2025-09-27 15:20:32 +02:00
3b554047e9 update README 2025-09-27 15:12:31 +02:00
5ee40c7c51 Update tempbox/README.md 2025-09-27 15:11:05 +02:00
6faf60d5f1 update README 2025-09-27 15:10:41 +02:00
20770f5f04 update README 2025-09-27 15:08:18 +02:00
400bc3091a fixed verbosity switch for run_as_subprocess()the output now getst voided if the -v flag is not set 2025-09-27 15:06:36 +02:00
9a6826fac0 update README 2025-09-27 14:13:36 +02:00
d7845413d6 removed releases 2025-09-27 14:11:56 +02:00
37dee4569f update gitignore 2025-09-27 14:08:00 +02:00
78 changed files with 808 additions and 8517 deletions

180
.gitignore vendored
View File

@@ -1 +1,179 @@
__pycache__ releases
version.py
tester
# ---> Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# UV
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
#uv.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# Ruff stuff:
.ruff_cache/
# PyPI configuration file
.pypirc

View File

@@ -1,3 +1,17 @@
# Python # Python Programs and Scripts Repository
Collection of my python scripts. ![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)
Collection of my python scripts and programs. Containing tools to manipulate the behavior of the system.
## tempbox
A script which allows the user to execute commands in a temporary
directory.
After execution, all contents within the folder get removed.
## refit
A file and folder manipulation tool. The aim is to unify various steps from moving to creating and deleting
directories and folder with one tool.

31
refit/README.md Normal file
View File

@@ -0,0 +1,31 @@
# refit
`refit` is a file, directory manipulation and creation tool.
## ToDos
1. folder and file creation
1.1 simple file and folder creation
1.2 recursive file and folder creation
1.3 file in folder creation
2. file movement
2.1 apply a pattern what to move to where
3. file removal
3.1 remove all files like '*.tar'
- ~~make input default the current directory and the second argument after `refit create`~~
- ~~maybe get rid of valid input ??~~
- rework rf_create_decider() so it does not execute if no inputs are given -> valid input check back for no arguments passed?
- check done in rf_create_decider()
- get rid of input argument, default to current directory and and make it positional
- implement back in the valid input check
# Changelog
<2025-09-30> V0.3.2 - Refactoring librefit and added proper docstrings; begun to remove the check for the valid input and put it in the decider
<2025-09-29> V0.3.1 - Removed the requirement for an input
<2025-09-29> V0.3.0 - Added file creation in the pattern like directories
<2025-09-29> V0.2.4 - Improved logging and log readability
<2025-09-28> V0.2.3 - Added logging for version file and --filemode path to the decider
<2025-09-28> V0.2.0 - Added librefit for standard functions
<2025-09-28> V0.1.0 - Added the creation of multiple numbered directories in a given directory with the pattern default directory_n

10
refit/pyproject.toml Normal file
View File

@@ -0,0 +1,10 @@
[build-system]
requires = ["setuptools>=61.0.0"]
build-backend = "setuptools.build_meta"
[project]
name = "refit"
version = "0.0.1"
[tool.setuptools.packages]
find = { where = ["src"] }

0
refit/src/__init__.py Normal file
View File

View File

@@ -0,0 +1,152 @@
import os
import sys
from .refit_logger import logger
# TODO: Make a standard function for reading config files, so it is
# reusable
def get_standard_name_number(current_number: str, number_str_length: int) -> str:
"""Returns a number string filled to the length of the input number
This function returns the number in a standartized way as a string.
As input it takes the current number of the string to build and a
number which determines the length of the string.
Args:
current_number (str): The current number of the item.
number_str_length (int): The length of the string which gets returned.
Examples:
>>> get_standard_name_number(1, 2)
'01'
>>> get_standard_name_number(23, 4)
'0023'
"""
# logger.debug(
# f"FUNC: get_standard_name_number() index={current_number} string_length={number_str_length}"
# )
current_number = str(current_number)
standard_name_number = str.zfill(current_number, number_str_length)
# logger.debug(
# f"FUNC: get_standard_name_number() return value= '{standard_name_number}'"
# )
return standard_name_number
def get_standard_folder_name(name: str) -> str:
"""Returnes a standard name either from a list or the default value.
This function sanitizes the input, which gets passed as a list or None from
argparse. The function either chooses the first entry of the list, given to
the --name argument or returns the default value 'directory'
Args:
name (list[str] | None): A list of names if passed to the --name argument
or None if no name is passed.
Returns:
str: The file name. Returns 'file' as default value if name argument is 'None'
otherwise the first element of the list.
Examples:
>>> get_standard_file_name(None)
'file'
>>> get_standard_file_name(["example"])
'example'
>>> get_standard_file_name(["directory_name", "example"])
'directory_name'
"""
logger.debug(
f"FUNC: get_standard_folder_name() MSG: entered function with value: '{name}'"
)
standard_folder_name = name[0] if name is not None else "directory"
logger.debug(
f"FUNC: get_standard_folder_name() MSG: exiting function with folder name: '{standard_folder_name}'"
)
return standard_folder_name
def get_standard_file_name(name) -> str:
"""Returnes a name either from a list or the default value.
This function sanitizes the input, which gets passed as a list or None from
argparse. The function either chooses the first entry of the list, given to
the --name argument or returns the default value 'file'
Args:
name (list[str] | None): A list of names if passed to the --name argument
or None if no name is passed.
Returns:
str: The file name. Returns 'file' as default value if name argument is 'None'
otherwise the first element of the list.
Examples:
>>> get_standard_file_name(None)
'file'
>>> get_standard_file_name(["example"])
'example'
>>> get_standard_file_name(["file_name", "example"])
'file_name'
"""
logger.debug(
f"FUNC: get_standard_file_name() MSG: entered function with name='{name}'"
)
standard_file_name = name[0] if name is not None else "file"
logger.debug(
f"FUNC: get_standard_file_name MSG: Continuing with expected input: '{standard_file_name}'"
)
logger.debug("FUNC get_standard_file_name() MSG: Exit")
return standard_file_name
def get_current_path(path) -> str:
"""Checks if the path argument is emty and applies the current directory as working path.
This function takes an list with strings as an input. If the input is `None` the current
directory is taken as the working directory.
If the path is passed, a check for its existence takes place.
Args:
path (str): _The current working directory._
Returns:
str: _Returns the path of the current directory after check for existence_
"""
# TODO: write test for the current path function, test for:
# - None
# - for existing path
# - for non existing path
# NOTE: research how to check for paths in test functions...
logger.debug(f"FUNC: get_current_path() MSG: entered function with path = '{path}'")
if path is None:
# Set the current directory if none is passed with the command.
path = "."
logger.warning(
f"FUNC: {get_current_path.__name__}() MSG: Path now has the value: '{path}'"
)
return path
else:
# Checks if the path, entered by the user, exists.
if os.path.exists(path) is True:
logger.debug(
f"FUNC: {get_current_path.__name__} MSG: Path '{path}' exists, continue...."
)
return path
else:
ERROR_MESSAGE = (
f"FUNC: {get_current_path.__name__} MSG: '{path}' does not exist"
)
logger.warning(ERROR_MESSAGE)
print(ERROR_MESSAGE)
sys.exit(1)

View File

@@ -0,0 +1,178 @@
import os
from pathlib import Path
import sys
from .refit_logger import logger
from . import librefit
# logger.debug("Initiated refit_create.py")
# ----------------------------------------------------------------------
class Refit_Create:
"""A class to create folders and files.
It first calls the decider which lets the create_input_valid() function
check if the input argument exists. If create_input_valid() returns
'True' it continues to execute the command as per the given arguments.
default folder name: directory"""
def __init__(self, args):
"""Initiating variables for creation"""
self.args = args
self.name = args.name
self.input = args.input
self.n = args.n
self.filemode = args.filemode
self.recursive = args.recursive
def create_n_folders(self, n, input, name):
"""Creates an set ammount of folders. Using the default directory
name if no other is provided."""
logger.debug(f"FUNC: create_n_folders() ARGS: n={n} input={input} name={name}")
# Creating the length of the suffix number_string.
length_n = len(str(n))
logger.debug(
f"FUNC: create_n_folders() MSG: Length of numbering string added to the name:{length_n}"
)
# Get either the default folder name or the input name as string.
logger.debug(
f"FUNC: create_n_folders() MSG: Type of name value: {type(name)} name={name}"
)
folder_name = librefit.get_standard_folder_name(name)
logger.debug(
f"FUNC: create_n_folders() MSG: Folder name: {folder_name} post get_standard_folder_name() call"
)
while n > 0:
# iterating down for the files number.
folder_number = str(n - 1)
# Passing the number and the length of the string to get the string back.
number_string = librefit.get_standard_name_number(folder_number, length_n)
# Creating path for the folder
temp_name = f"{folder_name}_{number_string}"
folder_creation_path = os.path.join(input, temp_name)
# Creating folder and subtracting n by one for the number_string
os.mkdir(folder_creation_path)
n -= 1
def create_n_files(self, n, input, name):
"""Creates an set ammount of files, using the default file name
if none is provided."""
logger.debug(
f"FUNC: create_n_files() MSG: Entered function VALUES: n={self.n} name={self.name} input={self.input}"
)
# Get the name from the input argument.
file_name = librefit.get_standard_file_name(name)
# Get the length of the entered number to fill it with 0
length_n = len(str(n))
logger.debug(
f"FUNC: create_n_files() MSG: file name='{file_name}' length_n={length_n}"
)
while n > 0:
# Get number of the file(s) to create
file_number = str(n - 1)
number_string = librefit.get_standard_name_number(file_number, length_n)
# Get the name of the file, either applying default or using first list item.
temp_name = f"{file_name}_{number_string}"
file_path = Path(os.path.join(input, temp_name)) # Build file path
file_path.touch(exist_ok=True) # creating file
logger.debug(
f"FUNC: create_n_files MSG: created file at {os.path.join(input, temp_name)}"
)
# Counting down n for the next ieration of the while-loop
n -= 1
def input_validator(self):
"""Function, which checks if the user input is valid"""
# Check working directory
if self.input is None:
self.input = librefit.get_current_path(self.input)
logger.info(
"FUNC: input_validator() MSG: No directory passed to the command, continue with current directory"
)
# Check if recursive input is an empty list
if self.recursive is not None:
if len(self.recursive) < 3:
logger.error("Recursive flag cannot be set without values.")
sys.exit(1)
# Exit the program if the -n argument is not passed
if self.n is None:
logger.error(
f"FUNC rf_create_decider(n=None ?) MSG: the number value cannot be '{self.n}'"
)
print("Use the '-n' flag for the create command.")
sys.exit(1)
else:
logger.debug(
f"FUNC: input_validator() MSG: valid number entered n={self.n}"
)
return True
def rf_create_decider(self):
"""Coordination of the 'create' sub command"""
logger.debug("FUNC: rf_create_decider() MSG: Entered decider function")
if self.input_validator():
logger.debug(
f"FUNC: rf_create_decider() MSG: n={self.n} after input validating"
)
# Exits the program if recursive and filemode flags are set at the same time
if self.filemode:
logger.debug(
f"FUNC: rf_create_decider(filemode) MSG: given arguments: {self.n} {self.input} {self.name}"
)
if self.recursive is None:
self.create_n_files(self.n, self.input, self.name)
else:
logger.error("Recursive and filemode don´t work together.")
print("Recursive and filemode don´t work together.")
if self.recursive is not None:
logger.debug(
f"FUNC: rf_create_decider(recursive) MSG: given arguments: n={self.n} input={self.input} name={self.name} recursive={self.recursive}"
)
# OPTIMIZE:Enters the standard creation mode and crerates directories.
if self.recursive is None:
if not self.filemode:
logger.debug(
f"FUNC: rf_create_decider(n_folder) MSG: given arguments: n={self.n} input={self.input} name={self.name}"
)
self.create_n_folders(self.n, self.input, self.name)
else:
print("How did we end up here?????")
else:
logger.debug(
f"FUNC: rf_create_decider(exit no input) MSG: given arguments: n={self.n} input={self.input} name={self.name} recursive={self.recursive}"
)
print(
"Use '-n' argument to create directories.\nPlease use 'refit create -h' for help"
)
sys.exit(1)
def __call__(self):
"""Gets called when the 'create' subcommand is used."""
self.rf_create_decider()

View File

@@ -0,0 +1,32 @@
import logging
import sys
from pathlib import Path
log_dir = Path.home() / ".local" / "share" / "refit"
log_dir.mkdir(parents=True, exist_ok=True)
log_file = log_dir / "refit.log"
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(levelname)s - %(message)s",
filename=log_file,
)
logger = logging.getLogger()
def handle_exception(exec_type, exec_value, exec_traceback):
if issubclass(exec_type, KeyboardInterrupt):
sys.__excepthook__(exec_type, exec_value, exec_traceback)
return
logger.error(
"External error accured",
exc_info=(exec_type, exec_value, exec_traceback),
)
sys.excepthook = handle_exception
# logger.debug(f"Log path:\t{log_dir}")
# logger.debug(f"Log file:\t{log_file}")

105
refit/src/refit.py Normal file
View File

@@ -0,0 +1,105 @@
import argparse
import sys
import os
import configparser
from modules.refit_logger import logger
from modules.refit_create import Refit_Create
CONFIG_FILE = "version.cfg"
# TODO: comment the actions done in read_version_config()
# TODO: see the TODO in librefit: move the config file section into the
# libary
def read_version_config():
logger.debug(f"Start read_version_config() with config file: {CONFIG_FILE}")
config = configparser.ConfigParser()
config.read(CONFIG_FILE)
if not os.path.exists(CONFIG_FILE):
logger.error(
f"FUNC: read_version_config() MSG: Could not find config file '{CONFIG_FILE}'"
)
return "x.x.x"
if "VERSION" not in config:
logger.error(f"Could not find VERSION-variable in config file '{CONFIG_FILE}'")
return "x.x.x"
try:
v = config["VERSION"]
major = v.get("major", "0")
minor = v.get("minor", "0")
patch = v.get("patch", "0")
logger.debug(f"Config file read successfully. Version: {major}.{minor}.{patch}")
return f"{major}.{minor}.{patch}"
except Exception:
logger.warning("Couldn not read version from config file")
return "x.x.x"
REFIT_VERSION = f"Refit Beta {read_version_config()}"
# ---------------------------ARGPARSE START---------------------------
# TODO: Rework the structure of the argument parsing
# Main Parser
parser = argparse.ArgumentParser(
prog="Refit",
description="This is a file and directory manipulation tool.\
it can create, move and delete files and directories as well as \
renaming them",
epilog=REFIT_VERSION,
)
# Main Parser Arguments
# Create Parser
subparser = parser.add_subparsers(
title="Commands",
dest="create",
required=False,
)
# Create Parser Arguments
create_parser = subparser.add_parser("create", help="creates a new file/folder")
create_parser.add_argument("-n", type=int, help="number of items")
create_parser.add_argument("-i", "--input", help="input file")
create_parser.add_argument(
"--name",
nargs="*",
help="the name of the folder you want to create\n Default: directory",
)
create_parser.add_argument(
"--filemode", action="store_true", help="creates files instead of directories"
)
create_parser.add_argument(
"-r",
"--recursive",
# action="store_true",
nargs="*",
help="Sets the recursive mode for folders to true. First argumet\n is for the depth and the second for the width.",
)
create_parser.set_defaults(command_class=Refit_Create)
args = parser.parse_args()
# ---------------------------ARGPARSE END-----------------------------
# Dispatcher
# determines what code gets addressed based of the users chosen flags.
if hasattr(args, "command_class"):
logger.debug(f"In dispatcher with args: {args}")
Refit_Create = args.command_class
create_command_instance = Refit_Create(args)
create_command_instance()
else:
parser.print_help()
logger.info("No input, exiting with exit code: 1")
sys.exit(1)

5
refit/src/version.cfg Normal file
View File

@@ -0,0 +1,5 @@
[VERSION]
major = 0
minor = 3
patch = 2

44
refit/test_librefit.py Normal file
View File

@@ -0,0 +1,44 @@
from src.modules.librefit import (
get_standard_folder_name,
get_standard_name_number,
get_standard_file_name,
)
def test_get_default_file_name():
"""Tests if the function returns the correct value"""
default_name = get_standard_file_name(None)
assert "file" in default_name
def test_get_default_folder_name():
"""Test if the default directory name gets returned"""
default_name = get_standard_folder_name(None)
assert "directory" in default_name
def test_get_standard_name_number():
"""Tests if the number function returns the correctly formatted string."""
name_number = get_standard_name_number(20, 3)
assert "020" in name_number
def test_get_filename():
"""Tests if a passed filename is returned properly"""
filename = get_standard_file_name(["testname"])
assert "testname" in filename
def test_get_folder_name():
"""Tests if the function returns the passed folder name correctly"""
folder_name = ["folder"]
return_folder_name = get_standard_folder_name(folder_name)
assert "folder" in return_folder_name
def test_folder_name_list():
"""The function is supposed to only return the first name of the
passed list"""
folder_names = ["folder1", "folder2", "folder3"]
return_folder_name = get_standard_folder_name(folder_names)
assert "folder1" in return_folder_name

View File

@@ -1,8 +1,15 @@
# Tempbox # Tempbox
This script creates a temp file in /tmp. It is written to test This script creates a temp file in /tmp. It is written to test
e.g. folder manipulation. e.g. folder manipulation.
The tempbox command followed by another command executes it in an The tempbox command followed by another command executes it in an
temporary folder in /tmp. Afterwards it removes the temporary folder temporary folder in /tmp. Afterwards it removes the temporary folder
again. again.
## Changelog
<2025-09-27> - Beta b0.2.1 - added logging in $USER/.local/share/tempbox<br>
<2025-09-27> - Beta b0.1.1 - added the version output<br>
<2025-09-27> - Beta b0.1.1 - fixed verbosity switch for subprocess<br>
<2025-09-27> - *Beta b0.0.1* - first release of tempbox

View File

@@ -1,570 +0,0 @@
(['/home/cerberus/Documents/git/python/tempbox/tempbox.py'],
['/home/cerberus/Documents/git/python/tempbox'],
[],
[('/usr/lib/python3.13/site-packages/_pyinstaller_hooks_contrib/stdhooks',
-1000),
('/usr/lib/python3.13/site-packages/_pyinstaller_hooks_contrib', -1000)],
{},
[],
[],
False,
{},
0,
[],
[],
'3.13.7 (main, Aug 15 2025, 12:34:02) [GCC 15.2.1 20250813]',
[('pyi_rth_inspect',
'/usr/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('tempbox',
'/home/cerberus/Documents/git/python/tempbox/tempbox.py',
'PYSOURCE')],
[('zipfile', '/usr/lib/python3.13/zipfile/__init__.py', 'PYMODULE'),
('zipfile._path',
'/usr/lib/python3.13/zipfile/_path/__init__.py',
'PYMODULE'),
('zipfile._path.glob',
'/usr/lib/python3.13/zipfile/_path/glob.py',
'PYMODULE'),
('pathlib', '/usr/lib/python3.13/pathlib/__init__.py', 'PYMODULE'),
('pathlib._local', '/usr/lib/python3.13/pathlib/_local.py', 'PYMODULE'),
('urllib.parse', '/usr/lib/python3.13/urllib/parse.py', 'PYMODULE'),
('urllib', '/usr/lib/python3.13/urllib/__init__.py', 'PYMODULE'),
('ipaddress', '/usr/lib/python3.13/ipaddress.py', 'PYMODULE'),
('glob', '/usr/lib/python3.13/glob.py', 'PYMODULE'),
('fnmatch', '/usr/lib/python3.13/fnmatch.py', 'PYMODULE'),
('pathlib._abc', '/usr/lib/python3.13/pathlib/_abc.py', 'PYMODULE'),
('contextlib', '/usr/lib/python3.13/contextlib.py', 'PYMODULE'),
('py_compile', '/usr/lib/python3.13/py_compile.py', 'PYMODULE'),
('importlib.machinery',
'/usr/lib/python3.13/importlib/machinery.py',
'PYMODULE'),
('importlib', '/usr/lib/python3.13/importlib/__init__.py', 'PYMODULE'),
('importlib._bootstrap',
'/usr/lib/python3.13/importlib/_bootstrap.py',
'PYMODULE'),
('importlib._bootstrap_external',
'/usr/lib/python3.13/importlib/_bootstrap_external.py',
'PYMODULE'),
('importlib.metadata',
'/usr/lib/python3.13/importlib/metadata/__init__.py',
'PYMODULE'),
('csv', '/usr/lib/python3.13/csv.py', 'PYMODULE'),
('importlib.metadata._adapters',
'/usr/lib/python3.13/importlib/metadata/_adapters.py',
'PYMODULE'),
('importlib.metadata._text',
'/usr/lib/python3.13/importlib/metadata/_text.py',
'PYMODULE'),
('email.message', '/usr/lib/python3.13/email/message.py', 'PYMODULE'),
('email.policy', '/usr/lib/python3.13/email/policy.py', 'PYMODULE'),
('email.contentmanager',
'/usr/lib/python3.13/email/contentmanager.py',
'PYMODULE'),
('email.quoprimime', '/usr/lib/python3.13/email/quoprimime.py', 'PYMODULE'),
('string', '/usr/lib/python3.13/string.py', 'PYMODULE'),
('email.headerregistry',
'/usr/lib/python3.13/email/headerregistry.py',
'PYMODULE'),
('email._header_value_parser',
'/usr/lib/python3.13/email/_header_value_parser.py',
'PYMODULE'),
('email.iterators', '/usr/lib/python3.13/email/iterators.py', 'PYMODULE'),
('email.generator', '/usr/lib/python3.13/email/generator.py', 'PYMODULE'),
('copy', '/usr/lib/python3.13/copy.py', 'PYMODULE'),
('random', '/usr/lib/python3.13/random.py', 'PYMODULE'),
('statistics', '/usr/lib/python3.13/statistics.py', 'PYMODULE'),
('decimal', '/usr/lib/python3.13/decimal.py', 'PYMODULE'),
('_pydecimal', '/usr/lib/python3.13/_pydecimal.py', 'PYMODULE'),
('contextvars', '/usr/lib/python3.13/contextvars.py', 'PYMODULE'),
('fractions', '/usr/lib/python3.13/fractions.py', 'PYMODULE'),
('numbers', '/usr/lib/python3.13/numbers.py', 'PYMODULE'),
('hashlib', '/usr/lib/python3.13/hashlib.py', 'PYMODULE'),
('logging', '/usr/lib/python3.13/logging/__init__.py', 'PYMODULE'),
('pickle', '/usr/lib/python3.13/pickle.py', 'PYMODULE'),
('pprint', '/usr/lib/python3.13/pprint.py', 'PYMODULE'),
('dataclasses', '/usr/lib/python3.13/dataclasses.py', 'PYMODULE'),
('_compat_pickle', '/usr/lib/python3.13/_compat_pickle.py', 'PYMODULE'),
('bisect', '/usr/lib/python3.13/bisect.py', 'PYMODULE'),
('email._encoded_words',
'/usr/lib/python3.13/email/_encoded_words.py',
'PYMODULE'),
('base64', '/usr/lib/python3.13/base64.py', 'PYMODULE'),
('getopt', '/usr/lib/python3.13/getopt.py', 'PYMODULE'),
('gettext', '/usr/lib/python3.13/gettext.py', 'PYMODULE'),
('email.charset', '/usr/lib/python3.13/email/charset.py', 'PYMODULE'),
('email.encoders', '/usr/lib/python3.13/email/encoders.py', 'PYMODULE'),
('email.base64mime', '/usr/lib/python3.13/email/base64mime.py', 'PYMODULE'),
('email._policybase', '/usr/lib/python3.13/email/_policybase.py', 'PYMODULE'),
('email.header', '/usr/lib/python3.13/email/header.py', 'PYMODULE'),
('email.errors', '/usr/lib/python3.13/email/errors.py', 'PYMODULE'),
('email.utils', '/usr/lib/python3.13/email/utils.py', 'PYMODULE'),
('socket', '/usr/lib/python3.13/socket.py', 'PYMODULE'),
('selectors', '/usr/lib/python3.13/selectors.py', 'PYMODULE'),
('email._parseaddr', '/usr/lib/python3.13/email/_parseaddr.py', 'PYMODULE'),
('calendar', '/usr/lib/python3.13/calendar.py', 'PYMODULE'),
('datetime', '/usr/lib/python3.13/datetime.py', 'PYMODULE'),
('_pydatetime', '/usr/lib/python3.13/_pydatetime.py', 'PYMODULE'),
('_strptime', '/usr/lib/python3.13/_strptime.py', 'PYMODULE'),
('quopri', '/usr/lib/python3.13/quopri.py', 'PYMODULE'),
('typing', '/usr/lib/python3.13/typing.py', 'PYMODULE'),
('importlib.abc', '/usr/lib/python3.13/importlib/abc.py', 'PYMODULE'),
('importlib.resources.abc',
'/usr/lib/python3.13/importlib/resources/abc.py',
'PYMODULE'),
('importlib.resources',
'/usr/lib/python3.13/importlib/resources/__init__.py',
'PYMODULE'),
('importlib.resources._functional',
'/usr/lib/python3.13/importlib/resources/_functional.py',
'PYMODULE'),
('importlib.resources._common',
'/usr/lib/python3.13/importlib/resources/_common.py',
'PYMODULE'),
('importlib.resources._adapters',
'/usr/lib/python3.13/importlib/resources/_adapters.py',
'PYMODULE'),
('importlib._abc', '/usr/lib/python3.13/importlib/_abc.py', 'PYMODULE'),
('importlib.metadata._itertools',
'/usr/lib/python3.13/importlib/metadata/_itertools.py',
'PYMODULE'),
('importlib.metadata._functools',
'/usr/lib/python3.13/importlib/metadata/_functools.py',
'PYMODULE'),
('importlib.metadata._collections',
'/usr/lib/python3.13/importlib/metadata/_collections.py',
'PYMODULE'),
('importlib.metadata._meta',
'/usr/lib/python3.13/importlib/metadata/_meta.py',
'PYMODULE'),
('textwrap', '/usr/lib/python3.13/textwrap.py', 'PYMODULE'),
('email', '/usr/lib/python3.13/email/__init__.py', 'PYMODULE'),
('email.parser', '/usr/lib/python3.13/email/parser.py', 'PYMODULE'),
('email.feedparser', '/usr/lib/python3.13/email/feedparser.py', 'PYMODULE'),
('json', '/usr/lib/python3.13/json/__init__.py', 'PYMODULE'),
('json.encoder', '/usr/lib/python3.13/json/encoder.py', 'PYMODULE'),
('json.decoder', '/usr/lib/python3.13/json/decoder.py', 'PYMODULE'),
('json.scanner', '/usr/lib/python3.13/json/scanner.py', 'PYMODULE'),
('__future__', '/usr/lib/python3.13/__future__.py', 'PYMODULE'),
('importlib.readers', '/usr/lib/python3.13/importlib/readers.py', 'PYMODULE'),
('importlib.resources.readers',
'/usr/lib/python3.13/importlib/resources/readers.py',
'PYMODULE'),
('importlib.resources._itertools',
'/usr/lib/python3.13/importlib/resources/_itertools.py',
'PYMODULE'),
('tokenize', '/usr/lib/python3.13/tokenize.py', 'PYMODULE'),
('token', '/usr/lib/python3.13/token.py', 'PYMODULE'),
('lzma', '/usr/lib/python3.13/lzma.py', 'PYMODULE'),
('_compression', '/usr/lib/python3.13/_compression.py', 'PYMODULE'),
('bz2', '/usr/lib/python3.13/bz2.py', 'PYMODULE'),
('threading', '/usr/lib/python3.13/threading.py', 'PYMODULE'),
('_threading_local', '/usr/lib/python3.13/_threading_local.py', 'PYMODULE'),
('struct', '/usr/lib/python3.13/struct.py', 'PYMODULE'),
('shutil', '/usr/lib/python3.13/shutil.py', 'PYMODULE'),
('tarfile', '/usr/lib/python3.13/tarfile.py', 'PYMODULE'),
('gzip', '/usr/lib/python3.13/gzip.py', 'PYMODULE'),
('importlib.util', '/usr/lib/python3.13/importlib/util.py', 'PYMODULE'),
('inspect', '/usr/lib/python3.13/inspect.py', 'PYMODULE'),
('dis', '/usr/lib/python3.13/dis.py', 'PYMODULE'),
('opcode', '/usr/lib/python3.13/opcode.py', 'PYMODULE'),
('_opcode_metadata', '/usr/lib/python3.13/_opcode_metadata.py', 'PYMODULE'),
('ast', '/usr/lib/python3.13/ast.py', 'PYMODULE'),
('stringprep', '/usr/lib/python3.13/stringprep.py', 'PYMODULE'),
('tracemalloc', '/usr/lib/python3.13/tracemalloc.py', 'PYMODULE'),
('_py_abc', '/usr/lib/python3.13/_py_abc.py', 'PYMODULE'),
('subprocess', '/usr/lib/python3.13/subprocess.py', 'PYMODULE'),
('signal', '/usr/lib/python3.13/signal.py', 'PYMODULE'),
('_colorize', '/usr/lib/python3.13/_colorize.py', 'PYMODULE'),
('tempbox_functions',
'/home/cerberus/Documents/git/python/tempbox/tempbox_functions.py',
'PYMODULE'),
('argparse', '/usr/lib/python3.13/argparse.py', 'PYMODULE'),
('tempfile', '/usr/lib/python3.13/tempfile.py', 'PYMODULE')],
[('libpython3.13.so.1.0', '/usr/lib/libpython3.13.so.1.0', 'BINARY'),
('python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libmpdec.so.4', '/usr/lib/libmpdec.so.4', 'BINARY'),
('libcrypto.so.3', '/usr/lib/libcrypto.so.3', 'BINARY'),
('liblzma.so.5', '/usr/lib/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/usr/lib/libbz2.so.1.0', 'BINARY'),
('libz.so.1', '/usr/lib/libz.so.1', 'BINARY')],
[],
[],
[('base_library.zip',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/base_library.zip',
'DATA')],
[('encodings.zlib_codec',
'/usr/lib/python3.13/encodings/zlib_codec.py',
'PYMODULE'),
('encodings.uu_codec',
'/usr/lib/python3.13/encodings/uu_codec.py',
'PYMODULE'),
('encodings.utf_8_sig',
'/usr/lib/python3.13/encodings/utf_8_sig.py',
'PYMODULE'),
('encodings.utf_8', '/usr/lib/python3.13/encodings/utf_8.py', 'PYMODULE'),
('encodings.utf_7', '/usr/lib/python3.13/encodings/utf_7.py', 'PYMODULE'),
('encodings.utf_32_le',
'/usr/lib/python3.13/encodings/utf_32_le.py',
'PYMODULE'),
('encodings.utf_32_be',
'/usr/lib/python3.13/encodings/utf_32_be.py',
'PYMODULE'),
('encodings.utf_32', '/usr/lib/python3.13/encodings/utf_32.py', 'PYMODULE'),
('encodings.utf_16_le',
'/usr/lib/python3.13/encodings/utf_16_le.py',
'PYMODULE'),
('encodings.utf_16_be',
'/usr/lib/python3.13/encodings/utf_16_be.py',
'PYMODULE'),
('encodings.utf_16', '/usr/lib/python3.13/encodings/utf_16.py', 'PYMODULE'),
('encodings.unicode_escape',
'/usr/lib/python3.13/encodings/unicode_escape.py',
'PYMODULE'),
('encodings.undefined',
'/usr/lib/python3.13/encodings/undefined.py',
'PYMODULE'),
('encodings.tis_620', '/usr/lib/python3.13/encodings/tis_620.py', 'PYMODULE'),
('encodings.shift_jisx0213',
'/usr/lib/python3.13/encodings/shift_jisx0213.py',
'PYMODULE'),
('encodings.shift_jis_2004',
'/usr/lib/python3.13/encodings/shift_jis_2004.py',
'PYMODULE'),
('encodings.shift_jis',
'/usr/lib/python3.13/encodings/shift_jis.py',
'PYMODULE'),
('encodings.rot_13', '/usr/lib/python3.13/encodings/rot_13.py', 'PYMODULE'),
('encodings.raw_unicode_escape',
'/usr/lib/python3.13/encodings/raw_unicode_escape.py',
'PYMODULE'),
('encodings.quopri_codec',
'/usr/lib/python3.13/encodings/quopri_codec.py',
'PYMODULE'),
('encodings.punycode',
'/usr/lib/python3.13/encodings/punycode.py',
'PYMODULE'),
('encodings.ptcp154', '/usr/lib/python3.13/encodings/ptcp154.py', 'PYMODULE'),
('encodings.palmos', '/usr/lib/python3.13/encodings/palmos.py', 'PYMODULE'),
('encodings.oem', '/usr/lib/python3.13/encodings/oem.py', 'PYMODULE'),
('encodings.mbcs', '/usr/lib/python3.13/encodings/mbcs.py', 'PYMODULE'),
('encodings.mac_turkish',
'/usr/lib/python3.13/encodings/mac_turkish.py',
'PYMODULE'),
('encodings.mac_romanian',
'/usr/lib/python3.13/encodings/mac_romanian.py',
'PYMODULE'),
('encodings.mac_roman',
'/usr/lib/python3.13/encodings/mac_roman.py',
'PYMODULE'),
('encodings.mac_latin2',
'/usr/lib/python3.13/encodings/mac_latin2.py',
'PYMODULE'),
('encodings.mac_iceland',
'/usr/lib/python3.13/encodings/mac_iceland.py',
'PYMODULE'),
('encodings.mac_greek',
'/usr/lib/python3.13/encodings/mac_greek.py',
'PYMODULE'),
('encodings.mac_farsi',
'/usr/lib/python3.13/encodings/mac_farsi.py',
'PYMODULE'),
('encodings.mac_cyrillic',
'/usr/lib/python3.13/encodings/mac_cyrillic.py',
'PYMODULE'),
('encodings.mac_croatian',
'/usr/lib/python3.13/encodings/mac_croatian.py',
'PYMODULE'),
('encodings.mac_arabic',
'/usr/lib/python3.13/encodings/mac_arabic.py',
'PYMODULE'),
('encodings.latin_1', '/usr/lib/python3.13/encodings/latin_1.py', 'PYMODULE'),
('encodings.kz1048', '/usr/lib/python3.13/encodings/kz1048.py', 'PYMODULE'),
('encodings.koi8_u', '/usr/lib/python3.13/encodings/koi8_u.py', 'PYMODULE'),
('encodings.koi8_t', '/usr/lib/python3.13/encodings/koi8_t.py', 'PYMODULE'),
('encodings.koi8_r', '/usr/lib/python3.13/encodings/koi8_r.py', 'PYMODULE'),
('encodings.johab', '/usr/lib/python3.13/encodings/johab.py', 'PYMODULE'),
('encodings.iso8859_9',
'/usr/lib/python3.13/encodings/iso8859_9.py',
'PYMODULE'),
('encodings.iso8859_8',
'/usr/lib/python3.13/encodings/iso8859_8.py',
'PYMODULE'),
('encodings.iso8859_7',
'/usr/lib/python3.13/encodings/iso8859_7.py',
'PYMODULE'),
('encodings.iso8859_6',
'/usr/lib/python3.13/encodings/iso8859_6.py',
'PYMODULE'),
('encodings.iso8859_5',
'/usr/lib/python3.13/encodings/iso8859_5.py',
'PYMODULE'),
('encodings.iso8859_4',
'/usr/lib/python3.13/encodings/iso8859_4.py',
'PYMODULE'),
('encodings.iso8859_3',
'/usr/lib/python3.13/encodings/iso8859_3.py',
'PYMODULE'),
('encodings.iso8859_2',
'/usr/lib/python3.13/encodings/iso8859_2.py',
'PYMODULE'),
('encodings.iso8859_16',
'/usr/lib/python3.13/encodings/iso8859_16.py',
'PYMODULE'),
('encodings.iso8859_15',
'/usr/lib/python3.13/encodings/iso8859_15.py',
'PYMODULE'),
('encodings.iso8859_14',
'/usr/lib/python3.13/encodings/iso8859_14.py',
'PYMODULE'),
('encodings.iso8859_13',
'/usr/lib/python3.13/encodings/iso8859_13.py',
'PYMODULE'),
('encodings.iso8859_11',
'/usr/lib/python3.13/encodings/iso8859_11.py',
'PYMODULE'),
('encodings.iso8859_10',
'/usr/lib/python3.13/encodings/iso8859_10.py',
'PYMODULE'),
('encodings.iso8859_1',
'/usr/lib/python3.13/encodings/iso8859_1.py',
'PYMODULE'),
('encodings.iso2022_kr',
'/usr/lib/python3.13/encodings/iso2022_kr.py',
'PYMODULE'),
('encodings.iso2022_jp_ext',
'/usr/lib/python3.13/encodings/iso2022_jp_ext.py',
'PYMODULE'),
('encodings.iso2022_jp_3',
'/usr/lib/python3.13/encodings/iso2022_jp_3.py',
'PYMODULE'),
('encodings.iso2022_jp_2004',
'/usr/lib/python3.13/encodings/iso2022_jp_2004.py',
'PYMODULE'),
('encodings.iso2022_jp_2',
'/usr/lib/python3.13/encodings/iso2022_jp_2.py',
'PYMODULE'),
('encodings.iso2022_jp_1',
'/usr/lib/python3.13/encodings/iso2022_jp_1.py',
'PYMODULE'),
('encodings.iso2022_jp',
'/usr/lib/python3.13/encodings/iso2022_jp.py',
'PYMODULE'),
('encodings.idna', '/usr/lib/python3.13/encodings/idna.py', 'PYMODULE'),
('encodings.hz', '/usr/lib/python3.13/encodings/hz.py', 'PYMODULE'),
('encodings.hp_roman8',
'/usr/lib/python3.13/encodings/hp_roman8.py',
'PYMODULE'),
('encodings.hex_codec',
'/usr/lib/python3.13/encodings/hex_codec.py',
'PYMODULE'),
('encodings.gbk', '/usr/lib/python3.13/encodings/gbk.py', 'PYMODULE'),
('encodings.gb2312', '/usr/lib/python3.13/encodings/gb2312.py', 'PYMODULE'),
('encodings.gb18030', '/usr/lib/python3.13/encodings/gb18030.py', 'PYMODULE'),
('encodings.euc_kr', '/usr/lib/python3.13/encodings/euc_kr.py', 'PYMODULE'),
('encodings.euc_jp', '/usr/lib/python3.13/encodings/euc_jp.py', 'PYMODULE'),
('encodings.euc_jisx0213',
'/usr/lib/python3.13/encodings/euc_jisx0213.py',
'PYMODULE'),
('encodings.euc_jis_2004',
'/usr/lib/python3.13/encodings/euc_jis_2004.py',
'PYMODULE'),
('encodings.cp950', '/usr/lib/python3.13/encodings/cp950.py', 'PYMODULE'),
('encodings.cp949', '/usr/lib/python3.13/encodings/cp949.py', 'PYMODULE'),
('encodings.cp932', '/usr/lib/python3.13/encodings/cp932.py', 'PYMODULE'),
('encodings.cp875', '/usr/lib/python3.13/encodings/cp875.py', 'PYMODULE'),
('encodings.cp874', '/usr/lib/python3.13/encodings/cp874.py', 'PYMODULE'),
('encodings.cp869', '/usr/lib/python3.13/encodings/cp869.py', 'PYMODULE'),
('encodings.cp866', '/usr/lib/python3.13/encodings/cp866.py', 'PYMODULE'),
('encodings.cp865', '/usr/lib/python3.13/encodings/cp865.py', 'PYMODULE'),
('encodings.cp864', '/usr/lib/python3.13/encodings/cp864.py', 'PYMODULE'),
('encodings.cp863', '/usr/lib/python3.13/encodings/cp863.py', 'PYMODULE'),
('encodings.cp862', '/usr/lib/python3.13/encodings/cp862.py', 'PYMODULE'),
('encodings.cp861', '/usr/lib/python3.13/encodings/cp861.py', 'PYMODULE'),
('encodings.cp860', '/usr/lib/python3.13/encodings/cp860.py', 'PYMODULE'),
('encodings.cp858', '/usr/lib/python3.13/encodings/cp858.py', 'PYMODULE'),
('encodings.cp857', '/usr/lib/python3.13/encodings/cp857.py', 'PYMODULE'),
('encodings.cp856', '/usr/lib/python3.13/encodings/cp856.py', 'PYMODULE'),
('encodings.cp855', '/usr/lib/python3.13/encodings/cp855.py', 'PYMODULE'),
('encodings.cp852', '/usr/lib/python3.13/encodings/cp852.py', 'PYMODULE'),
('encodings.cp850', '/usr/lib/python3.13/encodings/cp850.py', 'PYMODULE'),
('encodings.cp775', '/usr/lib/python3.13/encodings/cp775.py', 'PYMODULE'),
('encodings.cp737', '/usr/lib/python3.13/encodings/cp737.py', 'PYMODULE'),
('encodings.cp720', '/usr/lib/python3.13/encodings/cp720.py', 'PYMODULE'),
('encodings.cp500', '/usr/lib/python3.13/encodings/cp500.py', 'PYMODULE'),
('encodings.cp437', '/usr/lib/python3.13/encodings/cp437.py', 'PYMODULE'),
('encodings.cp424', '/usr/lib/python3.13/encodings/cp424.py', 'PYMODULE'),
('encodings.cp273', '/usr/lib/python3.13/encodings/cp273.py', 'PYMODULE'),
('encodings.cp1258', '/usr/lib/python3.13/encodings/cp1258.py', 'PYMODULE'),
('encodings.cp1257', '/usr/lib/python3.13/encodings/cp1257.py', 'PYMODULE'),
('encodings.cp1256', '/usr/lib/python3.13/encodings/cp1256.py', 'PYMODULE'),
('encodings.cp1255', '/usr/lib/python3.13/encodings/cp1255.py', 'PYMODULE'),
('encodings.cp1254', '/usr/lib/python3.13/encodings/cp1254.py', 'PYMODULE'),
('encodings.cp1253', '/usr/lib/python3.13/encodings/cp1253.py', 'PYMODULE'),
('encodings.cp1252', '/usr/lib/python3.13/encodings/cp1252.py', 'PYMODULE'),
('encodings.cp1251', '/usr/lib/python3.13/encodings/cp1251.py', 'PYMODULE'),
('encodings.cp1250', '/usr/lib/python3.13/encodings/cp1250.py', 'PYMODULE'),
('encodings.cp1140', '/usr/lib/python3.13/encodings/cp1140.py', 'PYMODULE'),
('encodings.cp1125', '/usr/lib/python3.13/encodings/cp1125.py', 'PYMODULE'),
('encodings.cp1026', '/usr/lib/python3.13/encodings/cp1026.py', 'PYMODULE'),
('encodings.cp1006', '/usr/lib/python3.13/encodings/cp1006.py', 'PYMODULE'),
('encodings.cp037', '/usr/lib/python3.13/encodings/cp037.py', 'PYMODULE'),
('encodings.charmap', '/usr/lib/python3.13/encodings/charmap.py', 'PYMODULE'),
('encodings.bz2_codec',
'/usr/lib/python3.13/encodings/bz2_codec.py',
'PYMODULE'),
('encodings.big5hkscs',
'/usr/lib/python3.13/encodings/big5hkscs.py',
'PYMODULE'),
('encodings.big5', '/usr/lib/python3.13/encodings/big5.py', 'PYMODULE'),
('encodings.base64_codec',
'/usr/lib/python3.13/encodings/base64_codec.py',
'PYMODULE'),
('encodings.ascii', '/usr/lib/python3.13/encodings/ascii.py', 'PYMODULE'),
('encodings.aliases', '/usr/lib/python3.13/encodings/aliases.py', 'PYMODULE'),
('encodings', '/usr/lib/python3.13/encodings/__init__.py', 'PYMODULE'),
('re._parser', '/usr/lib/python3.13/re/_parser.py', 'PYMODULE'),
('re._constants', '/usr/lib/python3.13/re/_constants.py', 'PYMODULE'),
('re._compiler', '/usr/lib/python3.13/re/_compiler.py', 'PYMODULE'),
('re._casefix', '/usr/lib/python3.13/re/_casefix.py', 'PYMODULE'),
('re', '/usr/lib/python3.13/re/__init__.py', 'PYMODULE'),
('types', '/usr/lib/python3.13/types.py', 'PYMODULE'),
('codecs', '/usr/lib/python3.13/codecs.py', 'PYMODULE'),
('copyreg', '/usr/lib/python3.13/copyreg.py', 'PYMODULE'),
('ntpath', '/usr/lib/python3.13/ntpath.py', 'PYMODULE'),
('keyword', '/usr/lib/python3.13/keyword.py', 'PYMODULE'),
('genericpath', '/usr/lib/python3.13/genericpath.py', 'PYMODULE'),
('warnings', '/usr/lib/python3.13/warnings.py', 'PYMODULE'),
('locale', '/usr/lib/python3.13/locale.py', 'PYMODULE'),
('linecache', '/usr/lib/python3.13/linecache.py', 'PYMODULE'),
('_weakrefset', '/usr/lib/python3.13/_weakrefset.py', 'PYMODULE'),
('stat', '/usr/lib/python3.13/stat.py', 'PYMODULE'),
('posixpath', '/usr/lib/python3.13/posixpath.py', 'PYMODULE'),
('abc', '/usr/lib/python3.13/abc.py', 'PYMODULE'),
('_collections_abc', '/usr/lib/python3.13/_collections_abc.py', 'PYMODULE'),
('reprlib', '/usr/lib/python3.13/reprlib.py', 'PYMODULE'),
('os', '/usr/lib/python3.13/os.py', 'PYMODULE'),
('sre_compile', '/usr/lib/python3.13/sre_compile.py', 'PYMODULE'),
('io', '/usr/lib/python3.13/io.py', 'PYMODULE'),
('functools', '/usr/lib/python3.13/functools.py', 'PYMODULE'),
('heapq', '/usr/lib/python3.13/heapq.py', 'PYMODULE'),
('traceback', '/usr/lib/python3.13/traceback.py', 'PYMODULE'),
('collections', '/usr/lib/python3.13/collections/__init__.py', 'PYMODULE'),
('weakref', '/usr/lib/python3.13/weakref.py', 'PYMODULE'),
('operator', '/usr/lib/python3.13/operator.py', 'PYMODULE'),
('sre_parse', '/usr/lib/python3.13/sre_parse.py', 'PYMODULE'),
('sre_constants', '/usr/lib/python3.13/sre_constants.py', 'PYMODULE'),
('enum', '/usr/lib/python3.13/enum.py', 'PYMODULE')])

View File

@@ -1,126 +0,0 @@
([('tempbox',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/tempbox',
'EXECUTABLE'),
('python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libpython3.13.so.1.0', '/usr/lib/libpython3.13.so.1.0', 'BINARY'),
('python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libmpdec.so.4', '/usr/lib/libmpdec.so.4', 'BINARY'),
('libcrypto.so.3', '/usr/lib/libcrypto.so.3', 'BINARY'),
('liblzma.so.5', '/usr/lib/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/usr/lib/libbz2.so.1.0', 'BINARY'),
('libz.so.1', '/usr/lib/libz.so.1', 'BINARY'),
('base_library.zip',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/base_library.zip',
'DATA')],)

View File

@@ -1,54 +0,0 @@
('/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/tempbox',
True,
False,
True,
None,
None,
False,
False,
None,
True,
False,
None,
None,
None,
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/tempbox.pkg',
[('pyi-contents-directory _internal', '', 'OPTION'),
('PYZ-00.pyz',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/PYZ-00.pyz',
'PYZ'),
('python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('struct',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/struct.pyc',
'PYMODULE'),
('pyimod01_archive',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod01_archive.pyc',
'PYMODULE'),
('pyimod02_importers',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod02_importers.pyc',
'PYMODULE'),
('pyimod03_ctypes',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod03_ctypes.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'/usr/lib/python3.13/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py',
'PYSOURCE'),
('pyi_rth_inspect',
'/usr/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('tempbox',
'/home/cerberus/Documents/git/python/tempbox/tempbox.py',
'PYSOURCE')],
[],
False,
False,
1758972720,
[('run',
'/usr/lib/python3.13/site-packages/PyInstaller/bootloader/Linux-64bit-intel/run',
'EXECUTABLE')],
'/usr/lib/libpython3.13.so.1.0')

View File

@@ -1,49 +0,0 @@
('/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/tempbox.pkg',
{'BINARY': True,
'DATA': True,
'EXECUTABLE': True,
'EXTENSION': True,
'PYMODULE': True,
'PYSOURCE': True,
'PYZ': False,
'SPLASH': True,
'SYMLINK': False},
[('pyi-contents-directory _internal', '', 'OPTION'),
('PYZ-00.pyz',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/PYZ-00.pyz',
'PYZ'),
('python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('struct',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/struct.pyc',
'PYMODULE'),
('pyimod01_archive',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod01_archive.pyc',
'PYMODULE'),
('pyimod02_importers',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod02_importers.pyc',
'PYMODULE'),
('pyimod03_ctypes',
'/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/localpycs/pyimod03_ctypes.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'/usr/lib/python3.13/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py',
'PYSOURCE'),
('pyi_rth_inspect',
'/usr/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('tempbox',
'/home/cerberus/Documents/git/python/tempbox/tempbox.py',
'PYSOURCE')],
'libpython3.13.so.1.0',
True,
False,
False,
[],
None,
None,
None)

View File

@@ -1,162 +0,0 @@
('/home/cerberus/Documents/git/python/tempbox/package/build/tempbox/PYZ-00.pyz',
[('__future__', '/usr/lib/python3.13/__future__.py', 'PYMODULE'),
('_colorize', '/usr/lib/python3.13/_colorize.py', 'PYMODULE'),
('_compat_pickle', '/usr/lib/python3.13/_compat_pickle.py', 'PYMODULE'),
('_compression', '/usr/lib/python3.13/_compression.py', 'PYMODULE'),
('_opcode_metadata', '/usr/lib/python3.13/_opcode_metadata.py', 'PYMODULE'),
('_py_abc', '/usr/lib/python3.13/_py_abc.py', 'PYMODULE'),
('_pydatetime', '/usr/lib/python3.13/_pydatetime.py', 'PYMODULE'),
('_pydecimal', '/usr/lib/python3.13/_pydecimal.py', 'PYMODULE'),
('_strptime', '/usr/lib/python3.13/_strptime.py', 'PYMODULE'),
('_threading_local', '/usr/lib/python3.13/_threading_local.py', 'PYMODULE'),
('argparse', '/usr/lib/python3.13/argparse.py', 'PYMODULE'),
('ast', '/usr/lib/python3.13/ast.py', 'PYMODULE'),
('base64', '/usr/lib/python3.13/base64.py', 'PYMODULE'),
('bisect', '/usr/lib/python3.13/bisect.py', 'PYMODULE'),
('bz2', '/usr/lib/python3.13/bz2.py', 'PYMODULE'),
('calendar', '/usr/lib/python3.13/calendar.py', 'PYMODULE'),
('contextlib', '/usr/lib/python3.13/contextlib.py', 'PYMODULE'),
('contextvars', '/usr/lib/python3.13/contextvars.py', 'PYMODULE'),
('copy', '/usr/lib/python3.13/copy.py', 'PYMODULE'),
('csv', '/usr/lib/python3.13/csv.py', 'PYMODULE'),
('dataclasses', '/usr/lib/python3.13/dataclasses.py', 'PYMODULE'),
('datetime', '/usr/lib/python3.13/datetime.py', 'PYMODULE'),
('decimal', '/usr/lib/python3.13/decimal.py', 'PYMODULE'),
('dis', '/usr/lib/python3.13/dis.py', 'PYMODULE'),
('email', '/usr/lib/python3.13/email/__init__.py', 'PYMODULE'),
('email._encoded_words',
'/usr/lib/python3.13/email/_encoded_words.py',
'PYMODULE'),
('email._header_value_parser',
'/usr/lib/python3.13/email/_header_value_parser.py',
'PYMODULE'),
('email._parseaddr', '/usr/lib/python3.13/email/_parseaddr.py', 'PYMODULE'),
('email._policybase', '/usr/lib/python3.13/email/_policybase.py', 'PYMODULE'),
('email.base64mime', '/usr/lib/python3.13/email/base64mime.py', 'PYMODULE'),
('email.charset', '/usr/lib/python3.13/email/charset.py', 'PYMODULE'),
('email.contentmanager',
'/usr/lib/python3.13/email/contentmanager.py',
'PYMODULE'),
('email.encoders', '/usr/lib/python3.13/email/encoders.py', 'PYMODULE'),
('email.errors', '/usr/lib/python3.13/email/errors.py', 'PYMODULE'),
('email.feedparser', '/usr/lib/python3.13/email/feedparser.py', 'PYMODULE'),
('email.generator', '/usr/lib/python3.13/email/generator.py', 'PYMODULE'),
('email.header', '/usr/lib/python3.13/email/header.py', 'PYMODULE'),
('email.headerregistry',
'/usr/lib/python3.13/email/headerregistry.py',
'PYMODULE'),
('email.iterators', '/usr/lib/python3.13/email/iterators.py', 'PYMODULE'),
('email.message', '/usr/lib/python3.13/email/message.py', 'PYMODULE'),
('email.parser', '/usr/lib/python3.13/email/parser.py', 'PYMODULE'),
('email.policy', '/usr/lib/python3.13/email/policy.py', 'PYMODULE'),
('email.quoprimime', '/usr/lib/python3.13/email/quoprimime.py', 'PYMODULE'),
('email.utils', '/usr/lib/python3.13/email/utils.py', 'PYMODULE'),
('fnmatch', '/usr/lib/python3.13/fnmatch.py', 'PYMODULE'),
('fractions', '/usr/lib/python3.13/fractions.py', 'PYMODULE'),
('getopt', '/usr/lib/python3.13/getopt.py', 'PYMODULE'),
('gettext', '/usr/lib/python3.13/gettext.py', 'PYMODULE'),
('glob', '/usr/lib/python3.13/glob.py', 'PYMODULE'),
('gzip', '/usr/lib/python3.13/gzip.py', 'PYMODULE'),
('hashlib', '/usr/lib/python3.13/hashlib.py', 'PYMODULE'),
('importlib', '/usr/lib/python3.13/importlib/__init__.py', 'PYMODULE'),
('importlib._abc', '/usr/lib/python3.13/importlib/_abc.py', 'PYMODULE'),
('importlib._bootstrap',
'/usr/lib/python3.13/importlib/_bootstrap.py',
'PYMODULE'),
('importlib._bootstrap_external',
'/usr/lib/python3.13/importlib/_bootstrap_external.py',
'PYMODULE'),
('importlib.abc', '/usr/lib/python3.13/importlib/abc.py', 'PYMODULE'),
('importlib.machinery',
'/usr/lib/python3.13/importlib/machinery.py',
'PYMODULE'),
('importlib.metadata',
'/usr/lib/python3.13/importlib/metadata/__init__.py',
'PYMODULE'),
('importlib.metadata._adapters',
'/usr/lib/python3.13/importlib/metadata/_adapters.py',
'PYMODULE'),
('importlib.metadata._collections',
'/usr/lib/python3.13/importlib/metadata/_collections.py',
'PYMODULE'),
('importlib.metadata._functools',
'/usr/lib/python3.13/importlib/metadata/_functools.py',
'PYMODULE'),
('importlib.metadata._itertools',
'/usr/lib/python3.13/importlib/metadata/_itertools.py',
'PYMODULE'),
('importlib.metadata._meta',
'/usr/lib/python3.13/importlib/metadata/_meta.py',
'PYMODULE'),
('importlib.metadata._text',
'/usr/lib/python3.13/importlib/metadata/_text.py',
'PYMODULE'),
('importlib.readers', '/usr/lib/python3.13/importlib/readers.py', 'PYMODULE'),
('importlib.resources',
'/usr/lib/python3.13/importlib/resources/__init__.py',
'PYMODULE'),
('importlib.resources._adapters',
'/usr/lib/python3.13/importlib/resources/_adapters.py',
'PYMODULE'),
('importlib.resources._common',
'/usr/lib/python3.13/importlib/resources/_common.py',
'PYMODULE'),
('importlib.resources._functional',
'/usr/lib/python3.13/importlib/resources/_functional.py',
'PYMODULE'),
('importlib.resources._itertools',
'/usr/lib/python3.13/importlib/resources/_itertools.py',
'PYMODULE'),
('importlib.resources.abc',
'/usr/lib/python3.13/importlib/resources/abc.py',
'PYMODULE'),
('importlib.resources.readers',
'/usr/lib/python3.13/importlib/resources/readers.py',
'PYMODULE'),
('importlib.util', '/usr/lib/python3.13/importlib/util.py', 'PYMODULE'),
('inspect', '/usr/lib/python3.13/inspect.py', 'PYMODULE'),
('ipaddress', '/usr/lib/python3.13/ipaddress.py', 'PYMODULE'),
('json', '/usr/lib/python3.13/json/__init__.py', 'PYMODULE'),
('json.decoder', '/usr/lib/python3.13/json/decoder.py', 'PYMODULE'),
('json.encoder', '/usr/lib/python3.13/json/encoder.py', 'PYMODULE'),
('json.scanner', '/usr/lib/python3.13/json/scanner.py', 'PYMODULE'),
('logging', '/usr/lib/python3.13/logging/__init__.py', 'PYMODULE'),
('lzma', '/usr/lib/python3.13/lzma.py', 'PYMODULE'),
('numbers', '/usr/lib/python3.13/numbers.py', 'PYMODULE'),
('opcode', '/usr/lib/python3.13/opcode.py', 'PYMODULE'),
('pathlib', '/usr/lib/python3.13/pathlib/__init__.py', 'PYMODULE'),
('pathlib._abc', '/usr/lib/python3.13/pathlib/_abc.py', 'PYMODULE'),
('pathlib._local', '/usr/lib/python3.13/pathlib/_local.py', 'PYMODULE'),
('pickle', '/usr/lib/python3.13/pickle.py', 'PYMODULE'),
('pprint', '/usr/lib/python3.13/pprint.py', 'PYMODULE'),
('py_compile', '/usr/lib/python3.13/py_compile.py', 'PYMODULE'),
('quopri', '/usr/lib/python3.13/quopri.py', 'PYMODULE'),
('random', '/usr/lib/python3.13/random.py', 'PYMODULE'),
('selectors', '/usr/lib/python3.13/selectors.py', 'PYMODULE'),
('shutil', '/usr/lib/python3.13/shutil.py', 'PYMODULE'),
('signal', '/usr/lib/python3.13/signal.py', 'PYMODULE'),
('socket', '/usr/lib/python3.13/socket.py', 'PYMODULE'),
('statistics', '/usr/lib/python3.13/statistics.py', 'PYMODULE'),
('string', '/usr/lib/python3.13/string.py', 'PYMODULE'),
('stringprep', '/usr/lib/python3.13/stringprep.py', 'PYMODULE'),
('subprocess', '/usr/lib/python3.13/subprocess.py', 'PYMODULE'),
('tarfile', '/usr/lib/python3.13/tarfile.py', 'PYMODULE'),
('tempbox_functions',
'/home/cerberus/Documents/git/python/tempbox/tempbox_functions.py',
'PYMODULE'),
('tempfile', '/usr/lib/python3.13/tempfile.py', 'PYMODULE'),
('textwrap', '/usr/lib/python3.13/textwrap.py', 'PYMODULE'),
('threading', '/usr/lib/python3.13/threading.py', 'PYMODULE'),
('token', '/usr/lib/python3.13/token.py', 'PYMODULE'),
('tokenize', '/usr/lib/python3.13/tokenize.py', 'PYMODULE'),
('tracemalloc', '/usr/lib/python3.13/tracemalloc.py', 'PYMODULE'),
('typing', '/usr/lib/python3.13/typing.py', 'PYMODULE'),
('urllib', '/usr/lib/python3.13/urllib/__init__.py', 'PYMODULE'),
('urllib.parse', '/usr/lib/python3.13/urllib/parse.py', 'PYMODULE'),
('zipfile', '/usr/lib/python3.13/zipfile/__init__.py', 'PYMODULE'),
('zipfile._path',
'/usr/lib/python3.13/zipfile/_path/__init__.py',
'PYMODULE'),
('zipfile._path.glob',
'/usr/lib/python3.13/zipfile/_path/glob.py',
'PYMODULE')])

View File

@@ -1,23 +0,0 @@
This file lists modules PyInstaller was not able to find. This does not
necessarily mean this module is required for running your program. Python and
Python 3rd-party packages include a lot of conditional or optional modules. For
example the module 'ntpath' only exists on Windows, whereas the module
'posixpath' only exists on Posix systems.
Types if import:
* top-level: imported at the top-level - look at these first
* conditional: imported within an if-statement
* delayed: imported within a function
* optional: imported within a try-except-statement
IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
tracking down the missing module yourself. Thanks!
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional)
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional)
missing module named 'collections.abc' - imported by traceback (top-level), typing (top-level), inspect (top-level), logging (top-level), importlib.resources.readers (top-level), selectors (top-level), tracemalloc (top-level)
missing module named winreg - imported by importlib._bootstrap_external (conditional)
missing module named nt - imported by shutil (conditional), importlib._bootstrap_external (conditional), ntpath (optional), _colorize (delayed, conditional, optional), os (delayed, conditional, optional)
missing module named _winapi - imported by encodings (delayed, conditional, optional), shutil (conditional), ntpath (optional), subprocess (conditional)
missing module named msvcrt - imported by subprocess (optional)

View File

@@ -1,44 +0,0 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['../tempbox.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='tempbox',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
exe,
a.binaries,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='tempbox',
)

View File

@@ -1,6 +1,8 @@
import os import os
import subprocess import subprocess
from .tempbox_logger import logger
def create_folders(number_folders, base_path, verbosity=False): def create_folders(number_folders, base_path, verbosity=False):
"""creates an amount of folders and returning its path""" """creates an amount of folders and returning its path"""
@@ -25,10 +27,23 @@ def create_folders(number_folders, base_path, verbosity=False):
def execute_as_subprocess(command, base_path, verbosity=False): def execute_as_subprocess(command, base_path, verbosity=False):
"""executes the string given with the '-c, --command' flag.""" """executes the string given with the '-c, --command' flag."""
logger.debug("Entered execute_as_subprocess()")
logger.debug(f"Path:\t{base_path}\nCommand:\t\t\t{command}")
# Decicion if the terminal output is verbose or not
if verbosity: if verbosity:
print(base_path) # Verbose output
print(command) logger.info("Running subprocess with terminal output.")
print(verbosity)
subprocess.run(command, cwd=base_path, shell=True) subprocess.run(command, cwd=base_path, shell=True)
else: else:
subprocess.run(command, cwd=base_path, shell=True) # Suppressed output
logger.info("Running with suppressed stdout and stderr")
subprocess.run(
command,
cwd=base_path,
shell=True,
stdout=subprocess.DEVNULL,
stderr=subprocess.STDOUT,
)
logger.debug("Exited execute_as_subprocess()")

View File

@@ -0,0 +1,17 @@
import logging
from pathlib import Path
log_dir = Path.home() / ".local" / "share" / "tempbox"
log_dir.mkdir(parents=True, exist_ok=True)
log_file = log_dir / "tempbox.log"
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s - %(levelname)s - %(message)s",
filename=log_file,
)
logger = logging.getLogger()
# logger.debug(f"Log path:\t{log_dir}")
# logger.debug(f"Log file:\t{log_file}")

View File

@@ -1,15 +1,17 @@
import tempfile import tempfile
import argparse import argparse
from tempbox_functions import execute_as_subprocess from modules.tempbox_functions import execute_as_subprocess
from modules.tempbox_logger import logger
tempbox_version = "Tempbox Beta b0.2.1"
# Argument parsing # Argument parsing
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
prog="Tempbox", prog="tempbox",
description="This program accepts an\ description="This program accepts an\
command whicht it executes in an temporary directory in /temp.", command whicht it executes in an temporary directory in /temp.",
# epilog="helloooooooo", epilog=tempbox_version,
) )
parser.add_argument( parser.add_argument(
@@ -18,17 +20,19 @@ parser.add_argument(
action="store_true", action="store_true",
help="Activates or deactivates verbose output. (default=%(default)s)", help="Activates or deactivates verbose output. (default=%(default)s)",
) )
parser.add_argument( parser.add_argument(
"-c", "-c",
"--command", "--command",
help="Takes the string right after the flag to execute it.", help="Takes the string right after the flag to execute it.",
) )
parser.add_argument("-V", "--version", action="version", version=tempbox_version)
args = parser.parse_args() args = parser.parse_args()
# Begin of script logic
if args.command is not None: if args.command is not None:
with tempfile.TemporaryDirectory() as temp_dir: with tempfile.TemporaryDirectory() as temp_dir:
logger.info(f"'{temp_dir}' was created")
if args.command is not None: if args.command is not None:
execute_as_subprocess( execute_as_subprocess(
args.command, args.command,
@@ -37,6 +41,4 @@ if args.command is not None:
) )
else: else:
parser.print_help() parser.print_help()
logger.debug("Printed Version")
# Creates a temporary directory and executes the command in it.