Giter Club home page Giter Club logo

pykan's Introduction

pyKAN

PyKAN is a pure python alternative client for the CKAN utility to manage modules for Kerbal Space Program. It uses the original upstream CKAN data and repos directly and does not fragment the module repositories, it merely provides an alternate client to consume this data to manage, install and update modules.

All the logic is kept in libraries - so that writing a new interface is easy.

Version 0.1.0

##Installation:

  1. Clone or Download the repository.
  2. Change to the directory where you downloaded
  3. Make sure you have python-requests and python-appdirs installed. The program will tell you if it cannot find these modules.
  4. ./pyKAN --help
  5. python pyKAN --help #On windows

##Current features:

  1. Global settings holding list of known KSP installation directories
  2. Per KSPDir settings on top of that
  3. Fetch repository data from CKAN
  4. Ability to install incompatible mods. Settings contain minKSPversion and maxKSPversion per install. By default these are set to the KSP version. User can override to, for example, allow mods that are maxed at 1.0.0 to install in 1.1.0.
  5. List available modules. Module listing comes with numerous optional filters which can be combined in arbitrary combinations. Includes text-search, module version and KSP version compatibility. The same filters will be available for selecting mods to install.
  6. Detect manually installed mods
  7. Import list of modules installed by CKAN
  8. List installed modules, indicating how they were installed.
  9. Install modules (optional override support for manual mods) with optional download-retries
  10. Uninstall modules
  11. Upgrade modules
  12. Python3 - in master branch only.

##Changes ###0.1.0

  1. The installed modules listing is now also sorted alphabetically.
  2. Fixed a bug where calling upgrade would reinstall the same version as was there before
  3. Disabled strict mode JSON to deal with the bad json in .version files.
  4. Handling of 'file' mode install sections now work correctly.
  5. Fixed install destination for mods like firespittercore
  6. Use appdirs module to place main configuration file in a platform neutral manner

###0.0.1-beta2

  1. Python3 support
  2. Lots of small bugfixes
  3. Improved mod installer, mod upgrades and mod uninstalls
  4. List_module now sorts alphabetically

###0.0.1-beta1

  1. Initial public release

##Todo:

  1. PyQT GUI for graphical usage
  2. Manual install by link. User can copy a download link and have the app download and install from within. User could add/edit mod information.
  3. Optimize the O(N) and O(n*x) algorithms.
  4. Improve the argument code for the commandline version. Some of it is a bit cumbersome.
  5. Import of CKAN installed list should also import filelist. Done
  6. Consider using a Linter for your source (I'd recommend flake8)
  7. Consider using the logging module rather than a DEBUG flag
  8. Consider documenting at all levels (package, module, class, function) using a known doc style (Plain, Epytext, restructuredText, Numpy, Google, etc.)
  9. [very optional] Consider using type hints (a.k.a PEP 484) or even the typing module (see also PEP 526) if you switch to python3.

##Written By

  1. A.J. Venter (metalpoetza on reddit).
  2. SYZYGY - Python3 support

pykan's People

Contributors

ajventer avatar fronbow avatar syzygy-dev333 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.