Installer, package manager, build wrapper and version manager for Piccolo

Related tags

MiscellaneousPiccl
Overview

Piccl Logo

Piccl

Installer, package manager, build wrapper and version manager for Piccolo (https://github.com/PiccoloLang/piccolo)

Overview

Piccl aims to simplify the process of integrating and developing using Piccolo in your environments. "How?" I hear you ask? Simple!: - Compile the latest versions of Piccolo as a library, and offer to install it for you! - Manage your Piccolo versions conveniently from the command line! - Want more bang for your buck? Build Piccolo libraries and link them against your local versions!

Installing

Piccl itself can be installed quite easily! At the moment we can only provide the awesomeness that is Piccl for our Unix bretheren, but Windows support will be added down the line.

Simply run:

sudo Piccl/Install.py

And you should be ready to go! For more options use the --help switch.

Piccl requires: - Python 3.9 - git - cc compatible compiler (e.g. gcc or clang)

Any packages will have their own dependencies which should be listed in their repositories.

Running

In the future, Piccl will run tests to make sure that trunk Piccolo isn't banjaxed, but for now compiler errors will have to suffice on your end ;-;.

Using Piccl is simple! Here's the basic syntax:

piccl [flags] 
   
     [flags|suboperations...] [operands]

   

Each operation has its own set of flags and its own --help menu.

Versions

Piccolo versions are stored in the Piccl home directory under the Versions folder. Environments will hold references to installed Piccolo versions in this folder. By default Piccl will hold any versions meeting the following criteria: - Is the latest version - Has an active reference in an environment which is not set to autoupdate - Has been added by the user with the --keep flag of a version add operation - Has been registered manually with the config --register-version operation and flag

Piccl will always hold the latest version of Piccolo and will keep it up-to-date. To add a persistent version use:

piccl version add --keep 
   

   

to get the Piccolo version referenced by the commit UUID commit. Without the --keep command Piccl will delete the version at the next update operation or after the next operation if autoupdate is enabled.

For package developers or developers looking to integrate libPiccolo, you can install a version of Piccolo globally using:

piccl version install 
   

   

Environments

You can use Piccl to manage multiple environments for Piccolo. When performing any operation you can use the --target flag to specify which environment or version to perform the operation on. Each environment has its own package index and references one installed Piccolo version. By default Piccl will initialize one environment called default.

For example, to initialize a new environment use:

piccl environment create 
   

   

This will initialize a new environment with no Piccolo version and an empty package index, to initalize the environment use:

piccl environment update 
   

   

Which will install the latest Piccolo version if neccesary and add a reference to it in the environment. Note that this command will also update any packages in the environment.

To configure an environment use:

piccl environment config [flags] 
   

   

For a list of configuration flags use:

piccl environment config --help

Global Configuration

Piccl keeps track of some global configuration in the home directory: - A list of environments - A list of versions - Whether to autoupdate after every operation - Piccl package indexes: Packages - The compiler to use for compiling native code

These can be modified using:

piccl config [flags]

For a list of configuration flags use:

piccl config --help

Packages

While at the moment Piccolo does not natively support libraries and inclusion, nor does it have a shell for running packages, using Repiccl or another Piccolo shell can provide an interface for libraries and runnable Piccolo modules. To install a package use:

piccl package install 
   
     [environment]

   

If you omit environment the package will be installed to the default environment.

The default package index is restricted to Piccl packages, to manage package indexes use:

piccl config --register-package-index 
   

   

For local package indexes, use a file:// URI with the path to your index. Note that Piccl is not responsible for any malicious programs present on 3rd party package indexes.

Advanced

Piccl keeps track of environments and other persistent data through a folder which by default is located at ~/.config/Piccl. This can be redirected with the PICCL_HOME environment variable if you need to manage multiple Piccl configurations. This is not how to handle environments. Note that this will also set the home directory if it is set during the installation. The same effect can be achieved using the --homedir flag when using Piccl.

If you are a package developer or are developing with Piccolo in an integrated manner, you can set the PICCL_DEBUG environment variable which will cause all builds to be performed with debug symbols enabled.

This python application let you check for new announcements from MMLS, take attendance while your lecturer is sharing QR Code on the screen.

This python application let you check for new announcements from MMLS, take attendance while your lecturer is sharing QR Code on the screen.

wyhong3103 5 Jul 17, 2022
A multi purpose password managing and generating tool called Kyper.

Kyper A multi purpose password managing and generating tool called Kyper. Setup The setup for Kyper is fairly simple only involving the command python

Jan Dorian Poczekaj 1 Feb 05, 2022
bamboo-engine 是一个通用的流程引擎,他可以解析,执行,调度由用户创建的流程任务,并提供了如暂停,撤销,跳过,强制失败,重试和重入等等灵活的控制能力和并行、子流程等进阶特性,并可通过水平扩展来进一步提升任务的并发处理能力。

bamboo-engine 是一个通用的流程引擎,他可以解析,执行,调度由用户创建的流程任务,并提供了如暂停,撤销,跳过,强制失败,重试和重入等等灵活的控制能力和并行、子流程等进阶特性,并可通过水平扩展来进一步提升任务的并发处理能力。 整体设计 Quick start 1. 安装依赖 2. 项目初始

腾讯蓝鲸 96 Dec 15, 2022
Write complicated anonymous functions other than lambdas in Python.

lambdex allows you to write multi-line anonymous function expression (called a lambdex) in an idiomatic manner.

Xie Jingyi 71 May 19, 2022
All you need to understand CRUD and MVP in DRF

Book-Store-API This an API which has been put in place just to make you order for books, upload books with price, image and all, pay and automtically

Oladipo Adesiyan 6 Jul 03, 2022
This is a small compiler to demonstrate how compilers work.

This is a small compiler to demonstrate how compilers work. It compiles our own dialect to C, while being written in Python.

Md. Tonoy Akando 2 Jul 19, 2022
A web interface for a soft serve Git server.

Soft Serve monitor Soft Sevre is a very nice git server. It offers a really nice TUI to browse the repositories on the server. Unfortunately, it does

Maxime Bouillot 5 Apr 26, 2022
Chemical equation balancer

Chemical equation balancer Balance your chemical equations with ease! Installation $ git clone

Marijan Smetko 4 Nov 26, 2022
PBN Obfuscator: A overpowered obfuscator for python, which will help you protect your source code

PBN Obfuscator PBN Obfuscator is a overpowered obfuscator for python, which will

Karim 6 Dec 22, 2022
Just some information about this nerd.

Greetings, mates, I am ErrorDIM - aka ErrorDimension 👋 🧬 Programming Languages I Can Use: 🥇 Top Starred Repositories: # Name Stars Size Major Langu

ErrorDIM 3 Jan 11, 2022
Izy - Python functions and classes that make python even easier than it is

izy Python functions and classes that make it even easier! You will wonder why t

5 Jul 04, 2022
Jannik Ramrath 1 Feb 05, 2022
🐍 A Python lib for (de)serializing Python objects to/from JSON

Turn Python objects into dicts or (json)strings and back No changes required to your objects Easily customizable and extendable Works with dataclasses

Ramon Hagenaars 253 Dec 14, 2022
easy_sbatch - Batch submitting Slurm jobs with script templates

easy_sbatch - Batch submitting Slurm jobs with script templates

Wei Shen 13 Oct 11, 2022
My solutions for Advent of Code 2021 🌟🎄

🌟 Advent of Code 2021 🎄 My solutions for Advent of Code 2021. About · What is Advent of Code? · Contents · Usage · Table of puzzles (TODO: add final

Amanda P. Pinha 2 Dec 05, 2022
Open source tools to allow working with ESP devices in the browser

ESP Web Tools Allow flashing ESPHome or other ESP-based firmwares via the browser. Will automatically detect the board type and select a supported fir

ESPHome 195 Dec 31, 2022
The official FOSSCOMM 2021 CTF by [email protected]

FOSSCOMM 2021 CTF Table of Contents General Info FAQ General Info Purpose: This CTF is a collaboration between the FOSSCOMM conference and the Machina 2 Nov 14, 2021

Tool to audit and fix Python project requirements.

Requirement Auditor Utility to revise and updated python requirement files.

Luis Carlos Berrocal 1 Nov 07, 2021
Catalogue CRUD Application

This Python program creates a relational SQL database hosted on the Snowflake platform, then opens a CRUD GUI to manipulate and view the data. In this application, it is used as a book catalogue. CUR

0 Dec 13, 2022
A minimal configuration for a dockerized kafka project.

Docker Kafka Quickstart A minimal configuration for a dockerized kafka project. Usage: Run this command to build kafka and zookeeper containers, and c

Nouamane Tazi 5 Jan 12, 2022