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.

Sample python script for monitoring Rocketchat database and get statistics of users.

rocketchat-DB-monitoring Sample python script for monitoring Rocketchat database and get statistics of users. 1. Update python: yum check-update && yu

Mojtaba Taleghani 1 Apr 12, 2022
Helper to organize your windows on your desktop.

The script of positionsing windows on the screen. How does it work? Select your window to move/res

Andrii D. 1 Jul 09, 2021
A tool for generating skill map/tree like diagram

skillmap A tool for generating skill map/tree like diagram. What is a skill map/tree? Skill tree is a term used in video games, and it can be used for

Yue 98 Jan 07, 2023
En este repositorio realizaré la tarea del laberinto.

Laberinto Perfil de GitHub del autor de este proyecto: @jmedina28 En este repositorio queda resuelta la composición de un laberinto 5x5 con sus muros

Juan Medina 1 Dec 11, 2021
🎅🏻 Helping santa understand ✨ python ✨

☃️ Advent of code 2021 ☃️ Helping santa understand ✨ python ✨

Fluffy 2 Dec 25, 2021
🎴 LearnQuick is a flashcard application that you can study with decks and cards.

🎴 LearnQuick is a flashcard application that you can study with decks and cards. The main function of the application is to show the front sides of the created cards to the user and ask them to guess

Mehmet Güdük 7 Aug 21, 2022
IEEE ITU bunyesinde komitelere verilen Python3 egitiminin dokumanlastirilmis versiyonlari bu repository altinda tutulmaktadir.

IEEE ITU Python Egitimi Nasil Faydalanmaliyim? Dersleri izledikten sonra dokumanlardaki kodlari yorum satirlari isaretlerini kaldirarak deneyebilirsin

İTÜ IEEE Student Branch 47 Sep 04, 2022
Implementation of the Folders📂 esoteric programming language, a language with no code and just folders.

Folders.py Folders is an esoteric programming language, created by Daniel Temkin in 2015, which encodes the program entirely into the directory struct

Sina Khalili 425 Dec 17, 2022
Web interface for browsing, search and filtering recent arxiv submissions

Web interface for browsing, search and filtering recent arxiv submissions

Andrej 4.8k Jan 08, 2023
A curses based mpd client with basic functionality and album art.

Miniplayer A curses based mpd client with basic functionality and album art. After installation, the player can be opened from the terminal with minip

Tristan Ferrua 102 Dec 24, 2022
A collection of design patterns and idioms in Python (With tests!).

Python Patterns Help the project financially: Donate: https://smartlegion.github.io/donate/ Yandex Money: https://yoomoney.ru/to/4100115206129186 PayP

5 Sep 12, 2021
Very simple encoding scheme that will encode data as a series of OwOs or UwUs.

OwO Encoder Very simple encoding scheme that will encode data as a series of OwOs or UwUs. The encoder is a simple state machine. Still needs a decode

1 Nov 15, 2021
Chemical Analysis Calculator, with full solution display.

Chemicology Chemical Analysis Calculator, to solve problems efficiently by displaying whole solution. Go to releases for downloading .exe, .dmg, Linux

Muhammad Moazzam 2 Aug 06, 2022
Module to align code with thoughts of users and designers. Also magically handles navigation and permissions.

This readme will introduce you to Carteblanche and walk you through an example app, please refer to carteblanche-django-starter for the full example p

Eric Neuman 42 May 28, 2021
Tools for teachers and students using nng (Natural Number Game)

nngtools Usage Place your nngsave.json to the directory in which you want to extract the level files. Place nngmap.json on the same directory. Run nng

Thanos Tsouanas 1 Dec 12, 2021
A script to automatically update bot status at GitHub as well as in Telegram channel.

A simple & short repository to show your bot's status in your GitHub README.md file as well as in you channel.

Jainam Oswal 55 Dec 13, 2022
A set of decks and notebooks with exercises for use in a hands-on causal inference tutorial session

intro-to-causal-inference A introduction to causal inference using common tools from the python data stack Table of Contents Getting Started Install g

Roni Kobrosly 15 Dec 07, 2022
Package pyVHR is a comprehensive framework for studying methods of pulse rate estimation relying on remote photoplethysmography (rPPG)

Package pyVHR (short for Python framework for Virtual Heart Rate) is a comprehensive framework for studying methods of pulse rate estimation relying on remote photoplethysmography (rPPG)

PHUSE Lab 261 Jan 03, 2023
Calculate the efficient frontier

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

Wyman Lin 104 Nov 11, 2022
This Open-Source project is great for sensor capture and storage solutions.

Phase 1 This project helps developers in the creation of extended realities that communicate with Arduino and require the security of blockchain stora

Wolfberry, LLC 10 Dec 28, 2022