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 is the course project of AI3602: Data Mining of SJTU

This is the course project of AI3602: Data Mining of SJTU. Group Members include Jinghao Feng, Mingyang Jiang and Wenzhong Zheng.

2 Jan 13, 2022
A custom advent of code I am completing

advent-of-code-custom A custom advent of code I am doing in python. The link to the problems I am solving is here: https://github.com/seldoncode/Adven

Rocio PV 2 Dec 11, 2021
A not exist cat image generator python package

A not exist cat image generator python package

Fayas Noushad 2 Dec 03, 2021
Given tool find related trending keywords of input keyword

blog_generator Given tool find related trending keywords of input keyword (blog_related_to_keyword). Then cretes a mini blog. Currently its customised

Shivanshu Srivastava 2 Nov 30, 2021
Projects using the Tkinter module in Python!

Tkinter projects This repository includes some Tkinter projects made by me. All of these are simple to understand. I create apps with good functionali

Amey 0 Sep 24, 2021
Submission from Team OMR for the TRI-NIT Hackathon

Submission from Team OMR for the TRI-NIT Hackathon

0 Feb 01, 2022
An early stage integration of Hotwire Turbo with Django

Note: This is not ready for production. APIs likely to change dramatically. Please drop by our Slack channel to discuss!

Hotwire for Django 352 Jan 06, 2023
Impf Bot.py 🐍⚡ automation for the German

Impf Bot.py 🐍⚡ automation for the German "ImpfterminService - 116117"

251 Dec 13, 2022
Ronin - Create Fud Meterpreter Payload To Hack Windows 11

Ronin - Create Fud Meterpreter Payload To Hack Windows 11

Dj4w3d H4mm4di 6 May 09, 2022
a url shortener with fastapi and tortoise-orm

fastapi-tortoise-orm-url-shortener a url shortener with fastapi and tortoise-orm

19 Aug 12, 2022
A passive recon suite designed for fetching the information about web application

FREAK Suite designed for passive recon Usage: python3 setup.py python3 freak.py warning This tool will throw error if you doesn't provide valid api ke

toxic v3nom 7 Feb 17, 2022
2 Way Sync Between Notion Database and Google Calendar

Notion-and-Google-Calendar-2-Way-Sync 2 Way Sync Between a Notion Database and Google Calendar WARNING: This repo will be undergoing a good bit of cha

248 Dec 26, 2022
:snake: Complete C99 parser in pure Python

pycparser v2.20 Contents 1 Introduction 1.1 What is pycparser? 1.2 What is it good for? 1.3 Which version of C does pycparser support? 1.4 What gramma

Eli Bendersky 2.8k Dec 29, 2022
CHIP-8 interpreter written in Python

chip8py CHIP-8 interpreter written in Python Contents About Installation Usage License About CHIP-8 is an interpreted language developed during the 19

Robert Olaru 1 Nov 09, 2021
Decentralized intelligent voting application.

DiVA Decentralized intelligent voting application. Hack the North 2021. Inspiration Following the previous US election, many voters were fearful that

Ali Shariatmadari 4 Jun 05, 2022
A male and female dog names python package

A male and female dog names python package

Fayas Noushad 3 Dec 12, 2021
Generate Gaussian 09 input files for the rotamers of an input compound.

Rotapy Purpose Generate Gaussian 09 input files for the rotamers of an input compound. Distance to the axis of rotation remains constant throughout th

1 Jul 16, 2021
Repositório para estudo do airflow

airflow-101 Repositório para estudo do airflow Docker criado baseado no tutorial Exemplo de API da pokeapi Para executar clone o repo execute as confi

Gabriel (Gabu) Bellon 1 Nov 23, 2021
Personal Assistant Tessa

Personal Assistant Tessa Introducing our all new personal assistant Tessa..... An intelligent virtual assistant (IVA) or intelligent personal assistan

Anusha Joseph 4 Mar 08, 2022
Calculate the efficient frontier

关于 代码主要参考Fábio Neves的文章,你可以在他的文章中找到一些细节性的解释

Wyman Lin 104 Nov 11, 2022