Skip to main content

No project description provided

Project description

mod-manager

PyPI - Version PyPI - Python Version


Table of Contents

Installation

pip install mod-manager

License

mod-manager is distributed under the terms of the MIT license.

About

mod-manager is a command line utility meant to help in downloading, searching, and version controlling mods from thunderstore.io

mod-manager works by using click context in order to pass around flags and values to the underlying commands. For this reason, most of the options that are necessary will need to be given to the main tmm command

It has 3 main utilities that get installed as a python binary under tmm

  1. tmm download
    • tmm download takes no arguments in and of itself, but uses all the flags of the main top command. Heres an example command for downloading 'BepInExPack'
    > tmm -p BepInExPack download
    
  2. tmm redownload
    • tmm redownload takes one argument, the json file which was output by the tmm download. tmm download creates a 'versions.json' that has all the settings and values from when the package_index was downloaded
    > tmm redownload /path/to/versions.json
    
  3. tmm fsearch
    • tmm fsearch searches through the index using a simple Fuzzy searching algorithm, and returns found deprecated and non-deprecated packages. To exclude deprecated packages, use --no-deprecated or -n. If you want to search case insensitive, use the -i or --case-insensitive flag
  4. tmm search DEPRECATED
    • tmm search IS DEPRECATED, and will not be kept/upheld. For the current search, see Fuzzy Searching
    • tmm search takes any amount of arguments for searching using the package_index that thunderstore provides. To show the actual output from the commands, you can use the --no-suppress flag to see what the script would grab for that specific variable, and --only-latest to only see the latest if you do choose to not suppress the output
    • The output looks like this searchoutput

Fuzzy searching

  • Currently tmm uses a simple fuzzy searching algorithm. It works by moving the string from left to right along the search value and counting how many letters match

Take the below example

string = "ABC"

In order to fuzzy search, the program instantiates a class with a list of strings

from mod_manager.algorithms import FuzzyFind
searcher = FuzzyFind(["AAA", "BBB", "CCC", "ABD", "ABC"])

The fuzzy searcher will then return the found entries with the count of what positions matched as it moved along the string. At first, the search will return only full matches in the string

> searcher.search(string) # searcher.search("ABC")
[FoundEntry(match_positions=[0,1,2], count=3, fullstring='ABC', percentage=1.0)]

To change this behavior, the limit option can be used in order to allow for different options (keep in mind, this can lead to duplicate search values as there can be multiple matches)

> searcher.search(string, limit=1)
[
Foundentry(match_positions=[0], count=1, fullstring='AAA', percentmatch=0.33),
Foundentry(match_positions=[1], count=1, fullstring='AAA', percentmatch=0.33),
Foundentry(match_positions=[2], count=1, fullstring='AAA', percentmatch=0.33),
...
]

Full list of arguments

  1. tmm
    1. -c, --community, the commumity to use, defaults to 'lethal-company'
    2. -q, --quiet, will suppress outputs when retrieving the package index
    3. -p, --package, will include this package name in the search to grab from the package index and download, can use this multiple times ie: -p BepInEx -p BiggerLobby
    4. -i, --ignore-dependencies, similar to -p but this will exclude dependencies for that mod when it is found. ie: -i BiggerLobby
    5. -f, --file, use a file separated by new lines instead of using -p to look up for packages. If you want to mimic the capability of --ignore-dependencies, you can append ;ignore-dependencies to the end of the string and it will add it to the list
    BepInEx
    BiggerLobby;ignore-dependencies; Will ignore dependencies for BiggerLobby
    
    1. -s, --no-save, does NOT save the mod versions found to a versions.json file
    2. -o, --output-directory, the directory in which to create the output folder, defaults to current directory
  2. download N/A
  3. redownload
    1. json_file, the json file versions.json that was made from using the download command
  4. fsearch
    1. -n, --no-deprecated, Don't include deprecated packages in search
    2. -l, --limit, Match limit for fuzzy finder, defaults to length of string passed in
    3. -i, --case-insensitive, Search for packages without case sensitivity
  5. search DEPRECATED
    1. -l, --only-latest, only show the latest version when outputing with --no-suppression
    2. --show-all, show all variants of the found mod and continue without looking further into the mod
    3. -n, --no-suppress, Output the json package data found from the thunderstore api
    4. packages, the list of mod names to search for with the thunderstore api

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mod_manager-2.1.0.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

mod_manager-2.1.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file mod_manager-2.1.0.tar.gz.

File metadata

  • Download URL: mod_manager-2.1.0.tar.gz
  • Upload date:
  • Size: 36.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for mod_manager-2.1.0.tar.gz
Algorithm Hash digest
SHA256 2db1cb0794936c27dac56c8516852a5e6824cbd2898027b7ed53e6d4741c9555
MD5 a9db32a99b41a0f24e07a40f1374c513
BLAKE2b-256 5a683f9ed908bff9443ea06435ed21a419eed62b945aced73b671e9ed121cfcf

See more details on using hashes here.

File details

Details for the file mod_manager-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: mod_manager-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for mod_manager-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9802acdd5b9cd8c796fc4543a9aca66cd00e72597c4e48193d1e7479a5a4d00
MD5 e999f64a61c5d36b70dcfc059c5a7db5
BLAKE2b-256 6efdebb77635687bbc6831dd21f78147f1478f29d020d16a7428af26855c49a9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page