Skip to main content

Kola

Simple python module for KoiLang parsing.

License PyPI PyPI - Downloads Python Version

Installation

From pip:

pip install KoiLang

From source code:

python setup.py build_ext --inplace
python setup.py install

What is KoiLang

KoiLang is a markup language while is easy to read for people. There is an simple example.

#background Street
    #camera on(Orga)
    #character Orga
        Huh... I'm a pretty good shot, huh?
    #camera on(Ride, Ched)
    #character Ride
        B- boss...
    #character Orga
        #action bleed
    #camera on(object: blood, source: Orga)

    #camera on(Ched, Orga, Ride)
    #character Orga
        How come you're stammering like that... Ride!

    #playsound freesia

    #character Orga
        #action stand_up speed(slowly)

    #character Ride
        But... but!
    #character Orga
        I'm the Boss of Tekkadan, Orga Itsuka, this is nothing to me.
    #character Ride
        #action shed_tear
        No... not for me...

    #camera on(Orga)
    #character Orga
        Protecting my members is my job!
    #character Ched
        #action shed_tear

    #character Ride
        But...!
    #character Orga
        Shut up and let's go!

        #camera on(Orga)
        #action walk direction(front) speed(slowly)
        Everyone's waiting, besides...

        I finally understand now, Mika, we don't need any destinations, we just need to keep moving forward.
        As long as we don't stop, the road will continue!

Grammar

In KoiLang, the code contains 'command' section and 'text' section. The format of the command section is similar to a C prepared statement, using '#' as the prefix. And other lines that do not start with '#' are the text section.

#command "This is a command"
This is the text.

The format of a single command like:

#command_name [param 1] [param 2] ...

There are several parameters behind the command whose name should be a valid variable name.

An unsigned decimal integer like is also a legal command name, like #114.

Each command can have several parameters behind the command name. Valid argument type include integer, float, literal and string.

#arg_int    1 0b101 0x6CF
#arg_float  1. 2e-2 .114514
#arg_literal string __name__
#arg_string "A string"

Here literal argument is a valid python variety name containing letter, digit, underline and not starting with digit. Usually it is the same as a string.

The above parameter types are often referred to base parameters. Combination parameter which is composed of multiple basic parameters is another argument type. It is a key-to-value mode which is starting with a literal as key and followed by several basic parameters. The format is as follows:

#kwargs key(value)

And another format:
#keyargs_list key(item0, item1)

And the third:
#kwargs_dict key(x: 11, y: 45, z: 14)

All the parameters above can be put together:

#draw Line 2 pos0(x: 0, y: 0) pos1(x: 16, y: 16) \
    thickness(2) color(255, 255, 255)

What can Kola module do

Kola module provides a fast way to translate KoiLang command into a python function call.

Above command #draw will convert to function call below:

draw(
    "Line", 2,
    pos0={"x": 0, "y": 0},
    pos1={"x": 16, "y": 16},
    thickness=2,
    color=[255, 255, 255]
)

Kola mudule just create a bridge from kola file to Python script. The bridge, the main class of Kola module, is KoiLang class. There is a simple example.

Example

Let's image a simple situation, where you want to create some small files. Manual creating is complex and time-consuming. Here is a way to solve that. We can use a single kola file to write all my text. Then use commands to devide these text in to different files.

Let us start with a kola file:

## This is the file `makefiles.kola`

#file "hello.txt" encoding("utf-8")
Hello world!
And there are all my friends.

#space hello

    #file "Bob.txt"
    Hello Bob.

    #file "Alice.txt"
    Hello Alice.

#endspace

Just name it as makefiles.kola. Then, we make a script to explain how to do with these commands:

import os
from kola import KoiLang, kola_command, kola_text


class FastFile(KoiLang):
    @kola_command
    def file(self, path: str, encoding: str = "utf-8") -> None:
        if self._file:
            self._file.close()
        path_dir = os.path.dirname(path)
        if path_dir:
            os.makedirs(path_dir, exist_ok=True)
        self._file = open(path, "w", encoding=encoding)
    
    @kola_command
    def space(self, name: str) -> None:
        path = name.replace('.', '/')
        if not os.path.isdir(path):
            os.makedirs(path)
        os.chdir(path)
    
    @kola_command
    def endspace(self) -> None:
        os.chdir("..")
        self.end()

    @kola_command
    def end(self) -> None:
        if self._file:
            self._file.close()
            self._file = None
    
    @kola_text
    def text(self, text: str) -> None:
        if not self._file:
            raise OSError("write texts before the file open")
        self._file.write(text)
    
    def at_start(self) -> None:
        self._file = None
    
    def at_end(self) -> None:
        self.end()

You can save the script in file script.py. After that, let us try to mix them together by entering the following in terminal:

python -m kola makefiles.kola -s script.py

Or add these directly at the end of the script:

if __name__ = "__main__":
    FastFile().parse_file("makefiles.kola")

You will see new files in your work dir.

<workdir>
│      
│  hello.txt
│      
└─hello
    Alice.txt
    Bob.txt

What happened

It seems amusing? Well, if you make a python script as this:

vmobj = FastFile()

with vmobj.exec_block():
    vmobj.file("hello.txt", encoding="utf-8")
    vmobj.text("Hello world!")
    vmobj.text("And there are all my friends.")

    vmobj.space("hello")

    vmobj.file("Bob.txt")
    vmobj.text("Hello Bob.")

    vmobj.file("Alice.txt")
    vmobj.text("Hello Alice.")

    vmobj.endspace()

the same result will be get. This is the python script corresponding to the previous kola file. What we have done is to make KoiLang interpreter know the correspondence between kola commands and python functions.

So let's go back to the script. Here the first we need is a kola command set that is the top interface for parsing. All commands we want to use will be included in the set. The best way is create a subclass of KoiLang with all commands as methods. That is:

class FastFile(KoiLang):
    ...

The next step is making the kola command we need. So a function is defined here:

def file(self, path: str, encoding: str = "utf-8") -> None:
    if self._file:
        self._file.close()
    path_dir = os.path.dirname(path)
    if path_dir:
        os.makedirs(path_dir, exist_ok=True)
    self._file = open(path, "w", encoding=encoding)

But it is not enough. Use the decorator @kola_command to annotate the function can be used in the kola text. In default case, the name of kola command will be the same to that of the function's. If another name is expected to use in kola files instead of the raw function name, you can use @kola_command("new_name") as the decorator. It wiil look like:

@kola_command("open")
def file(self, path: str, encoding: str = "utf-8") -> None:
    if self._file:
        self._file.close()
    path_dir = os.path.dirname(path)
    if path_dir:
        os.makedirs(path_dir, exist_ok=True)
    self._file = open(path, "w", encoding=encoding)

Than #open "hello.txt" will be a valid command, while using #space hello would get a KoiLangCommandError.

You may have notice that there is a special decorator @kola_text. As we know, the text section in kola files is a command, too. This decorator is to annotate the function to use to handle texts. Using @kola_command("@text") has the same effect. And another special decorator which is not shown here is @kola_number. It can handle commands like #114 or #1919. The first argument wiil be the number in the command.

File parse

KoiLang class provides several method. Use parse method to parse a string and parse_file to parse a file. It is suggested to use the second way so that KoiLang interpreter can give a traceback to the file when an error occure.

Advanced techniques

In above example, we define two commands to create and leave the space. While, if users use #endspace before creating space, this can cause some problems. To correct user behavior, we can use the environment to restrict the use of some commands. Environment class should be used here to define a sub class that is the new environment:

class FastFile(KoiLang):
    ...

    class space(Environment):
        @kola_env_enter("space")
        def enter(self, name: str) -> None:
            self.pwd = os.getcwd()
            path = name.replace('.', '/')
            if not os.path.isdir(path):
                os.makedirs(path)
            os.chdir(path)
        
        @kola_env_exit("endspace")
        def exit(self) -> None:
            os.chdir(self.pwd)

There is a parameter named envs in @kola_command, which is also used to limit the environment where commands use. It means the top stack of environment must have the same name, while commands defined in the environment class mean the they can be used until the environment is pop from the environment stack, even though the stack top is other environment.

What is more

The most difference between KoiLang and other markup language like YAML which is data-centric is that KoiLang more pay attention to the command. Yeah, text in Kola file is a special command named @text too. In fact, the core idea of Kola is to separate data and instructions. The kola file is the data to execute commands, and the python script is the instructions. Then Kola module just mix they together. It can be considered as a simple virtual machine engine. if you want, you can even build a Python virtual machine (of course, I guess no one like to do that).

On the other hand, text is also an important feature of Kola, which is a separate part, independent of context during parsing. The text is the soul of a Kola file. Any commands just are used to tell the computer what to do with the text. Though you can make a Kola file with only commands, it is not recommended. Instead, you ought to consider switching to another language.

Bugs/Requests

Please send bug reports and feature requests through github issue tracker. Kola is open to any constructive suggestions.

Metadata

Release files for koilang 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for koilang 1.1.2
File Size Uploaded
koilang-1.1.2.tar.gz 370.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for koilang 1.1.2
File
koilang-1.1.2-cp313-cp313t-win_amd64.whl CPython 3.13 CPython 3.13 free-threading Windows x86-64 Details
koilang-1.1.2-cp313-cp313t-win32.whl CPython 3.13 CPython 3.13 free-threading Windows x86-32 Details
koilang-1.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
koilang-1.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
koilang-1.1.2-cp313-cp313t-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 free-threading macOS 11.0+ x86-64 Details
koilang-1.1.2-cp313-cp313t-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64 Details
koilang-1.1.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
koilang-1.1.2-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details
koilang-1.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
koilang-1.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
koilang-1.1.2-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details
koilang-1.1.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
koilang-1.1.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
koilang-1.1.2-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
koilang-1.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
koilang-1.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details
koilang-1.1.2-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details
koilang-1.1.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
koilang-1.1.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
koilang-1.1.2-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
koilang-1.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
koilang-1.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
koilang-1.1.2-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details
koilang-1.1.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
koilang-1.1.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
koilang-1.1.2-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
koilang-1.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
koilang-1.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.5+ x86-64 Details
koilang-1.1.2-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details
koilang-1.1.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
koilang-1.1.2-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
koilang-1.1.2-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
koilang-1.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
koilang-1.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
koilang-1.1.2-cp39-cp39-macosx_11_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 11.0+ x86-64 Details
koilang-1.1.2-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
koilang-1.1.2-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details
koilang-1.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
koilang-1.1.2-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-64, Linux glibc 2.28+ x86-64 Details
koilang-1.1.2-cp38-cp38-macosx_11_0_x86_64.whl CPython 3.8 CPython 3.8 macOS 11.0+ x86-64 Details

Total release size: 20.8 MB

Release files / koilang-1.1.2.tar.gz

Download URL koilang-1.1.2.tar.gz
Size 370.3 kB
Tags Source
SHA-256 checksum
How to use checksums
67462bae9b4f8c7c4cec3c18b7e9b5477f12ef0c86109a938e7ba46768102968
BLAKE2b-256 checksum
How to use checksums
acb1fc95f72113cdb3d0d819d57830c37402e858554e4fa80cf74e7517ae640b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / koilang-1.1.2-cp313-cp313t-win_amd64.whl

Download URL koilang-1.1.2-cp313-cp313t-win_amd64.whl
Size 213.9 kB
Tags CPython 3.13 CPython 3.13 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
d793d0e541767e2d6db76d7940bff6a06131ac67d72104f2d8f50728ce9ab835
BLAKE2b-256 checksum
How to use checksums
c64c2d6727ccfd62087ea35408eac4ddb01c3b02e5fab7903cb7f825e016c218
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp313-cp313t-win32.whl

Download URL koilang-1.1.2-cp313-cp313t-win32.whl
Size 186.0 kB
Tags CPython 3.13 CPython 3.13 free-threading Windows x86-32
SHA-256 checksum
How to use checksums
7b12e13f76baa993a83fc988ab6deb3a3e56f454c415c771b0eb9ef18d9a94ad
BLAKE2b-256 checksum
How to use checksums
7c88ae393898a2d5c3814bd34084de4dffac0395dc5abe6112cd1c51fd9eea10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL koilang-1.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.2 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
eba1e42e272fd6f1ddaadccd9e7698bbd0483bd856fa6e376bacbc384d3d8ebc
BLAKE2b-256 checksum
How to use checksums
29f0c9359af0386803ae8d923bd1ff22afa28d5c14a7aef9054c893e1a965916
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL koilang-1.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
d5a87767a158df0b01e7b3771cd7fd3552bfef321fd5b704da2d3a67fe69363b
BLAKE2b-256 checksum
How to use checksums
8f356fb2d2f32e0f0633ab7b1f7021b6e192fe2ba8d37dcbf493819b7237c0d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp313-cp313t-macosx_11_0_x86_64.whl

Download URL koilang-1.1.2-cp313-cp313t-macosx_11_0_x86_64.whl
Size 217.0 kB
Tags CPython 3.13 CPython 3.13 free-threading macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
67b7d07d8ff6764af4b8a9ed79c52871b53f75f6ad9e02927a8c1683b99370bc
BLAKE2b-256 checksum
How to use checksums
1b1b5fb8bc81af85c345fde3b0180f192b78c62e05c51bc2e7c8d3b14aff5ff1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp313-cp313t-macosx_11_0_arm64.whl

Download URL koilang-1.1.2-cp313-cp313t-macosx_11_0_arm64.whl
Size 228.1 kB
Tags CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e010c378f59a2740435db7bcac6668e5131f4a551213fd3cbe4b867842aa70a1
BLAKE2b-256 checksum
How to use checksums
847f03d6d879226e68747ff45aca44dbdaf4b5c97299a243b61976b0b5003581
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp313-cp313-win_amd64.whl

Download URL koilang-1.1.2-cp313-cp313-win_amd64.whl
Size 188.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
17e6cd8d174c952247f075cac2867524e2f8bfde912402986bbd941cfa09e17c
BLAKE2b-256 checksum
How to use checksums
47b34c7d20e21faf19e5acd35af345674c0a58409d155b108818542ee23062a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp313-cp313-win32.whl

Download URL koilang-1.1.2-cp313-cp313-win32.whl
Size 164.6 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
b22d0090c9bf2bdcfe2c18ec9655ec598e79124aa0a3a574fd28b77640407db9
BLAKE2b-256 checksum
How to use checksums
a81356e1140966831711f2be07702ed1c8009588e43816916018fe05cb96c92e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL koilang-1.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.1 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
92f97d26310f4c3a27761432d1e07c7f1cf1122f0b4225f95349f79725d27ad6
BLAKE2b-256 checksum
How to use checksums
29dce1a76de3ad4d8a86c4155652657be7b9b3d7170fc1ee0bc0b0efd60a07b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL koilang-1.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 1.1 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
59c3403c49037643afb5f68e216b232e56ca3bd17d57225d936510497c620467
BLAKE2b-256 checksum
How to use checksums
ce3416ff56a842ddffc3a8e918b172655781e9319beacbc2b4d02600601d3b66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp313-cp313-macosx_11_0_x86_64.whl

Download URL koilang-1.1.2-cp313-cp313-macosx_11_0_x86_64.whl
Size 207.8 kB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
1c2e86089a5f6460e8f07d1f15887b530fad190b13437d52392f81b3f78b6de5
BLAKE2b-256 checksum
How to use checksums
46f762d64b7cb4453f95daa0225417861ab3e1c5558d8bb75356361261b6ebb7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL koilang-1.1.2-cp313-cp313-macosx_11_0_arm64.whl
Size 218.1 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cc6c0f67f558a859e8f8a426f0a065135240af7ed277f446b195d489589146b2
BLAKE2b-256 checksum
How to use checksums
38cc9c4b47633babfe271d0bf9cc5d33ba6c0d26fc52cdcfc3424feba47e43ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp312-cp312-win_amd64.whl

Download URL koilang-1.1.2-cp312-cp312-win_amd64.whl
Size 189.5 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
81a26cee1374ea0af06ef252b32287a922a4f946513b1de8afc25092963b16d1
BLAKE2b-256 checksum
How to use checksums
390d7eed756acf6e4090bec90ce93282566503de566631d78c70d30931fabe93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp312-cp312-win32.whl

Download URL koilang-1.1.2-cp312-cp312-win32.whl
Size 165.0 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
11a0b6c4d9b5659c267279f840798c6e90d2883e0c24dc07e8e3ecb8dd9f122d
BLAKE2b-256 checksum
How to use checksums
d5c8b86bba4507e19e76932988c28f3889b721a3f8edf28f0bcbd4d236c33f60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL koilang-1.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.1 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
978ae16ed1d0b3a369600208b5c57d376cf2a2c1aef38b0068a536642244ff68
BLAKE2b-256 checksum
How to use checksums
631a96644adf985ef0ca937f329e98c76279d8eb536d7eea0a04c29213fb8f71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL koilang-1.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b4ef27ee2788b0a65333f41e192628c8f45cca5e3a230e8c4860964a6b33ed42
BLAKE2b-256 checksum
How to use checksums
545845bc6759bcad18211c109fe09c1a032835b81d468b230a18b69466494ffd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp312-cp312-macosx_11_0_x86_64.whl

Download URL koilang-1.1.2-cp312-cp312-macosx_11_0_x86_64.whl
Size 210.7 kB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
04318fab51cf0f9a5292784f04e7b0ebdec08b629aa0b0b69d1865a4a98dcf2c
BLAKE2b-256 checksum
How to use checksums
55c207efae50f750ddc36970397f64c43a37a13ea8ef11016734a68e3c25c543
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL koilang-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
Size 220.4 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
83f8e96bc9c60303cce04139c81d46c0909b3fe8b100f35ace86a015180cb262
BLAKE2b-256 checksum
How to use checksums
e066d740364e63e0ec5bd92ee5372730a3c75edf8cc87d33166bd2a7088d51bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp311-cp311-win_amd64.whl

Download URL koilang-1.1.2-cp311-cp311-win_amd64.whl
Size 194.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
427922fb62720ef819a722eb8f07571e02c665d288b042257f05797adc21cf47
BLAKE2b-256 checksum
How to use checksums
1a405aecbf03fc77baca1cb461e805252895377625199d39a554b0f18a801d44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp311-cp311-win32.whl

Download URL koilang-1.1.2-cp311-cp311-win32.whl
Size 167.4 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
80854f515dc58e55472c467b8c530a409130d0feb978eab4e58200a70821faf8
BLAKE2b-256 checksum
How to use checksums
b8783c7e6868268e648681af708e27e62f82f70c07eaccc83e7f14b4e186aa7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL koilang-1.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.1 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e676e5285887d58b062782fda6ae3be0da62ce2671db96ebe74b012a988627fb
BLAKE2b-256 checksum
How to use checksums
5f67878b9e942aafef32316db57e636c9c14b6fe61f53bd8f95380977e9ccf8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL koilang-1.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
baed4e7f9097486b49a2962862bd6a6dac5be61016663affbc44fc60ce45d8bf
BLAKE2b-256 checksum
How to use checksums
b20197a453bb341e18ed7804b7a797a5601656611d5ec1ee91af9bf810cb933e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp311-cp311-macosx_11_0_x86_64.whl

Download URL koilang-1.1.2-cp311-cp311-macosx_11_0_x86_64.whl
Size 212.4 kB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
dbbf1e75d064b4a9e7f245c87c310f912974a36ad7f3447948912f9c984b010f
BLAKE2b-256 checksum
How to use checksums
9ef8fdca42c5c57902a4588b045f2877a4b966dd44c95b0d9368ed0ef0af6d57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL koilang-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
Size 222.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9504d806e6108457f5802e88900f87d3d7995fb3c058f46131d4b0a91e17205d
BLAKE2b-256 checksum
How to use checksums
8004a8a0fd7db7ffbc4c1b44e9e57777d45a20f052d08102e5be04fe4dbe8dab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp310-cp310-win_amd64.whl

Download URL koilang-1.1.2-cp310-cp310-win_amd64.whl
Size 193.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
9994a3bc6cfb687eb535d0258c0e9602268b2974eae330a59448fddba8436ca0
BLAKE2b-256 checksum
How to use checksums
9c1c9e48d0a4026a5c709aeace60c324885c34856fcc821a615399858ceb3887
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp310-cp310-win32.whl

Download URL koilang-1.1.2-cp310-cp310-win32.whl
Size 167.3 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
63ef3b3c0aa6b60cee401fc33294d4bbf5d744747ec196eeb8b4af816266ac0d
BLAKE2b-256 checksum
How to use checksums
5569c677099dee6c7e29b0e2d3627e696cffc063df3dd888e48157e0565f231c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL koilang-1.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.0 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e0415e8a56982e3f414ee670c3b95377b9d407dab3af4d9094529b33975c2d61
BLAKE2b-256 checksum
How to use checksums
e8b2bf2822770dea83c79cb89f89414e5047f34c00527e400422fd5075667b62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL koilang-1.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 1.0 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
6494762670483b9746c9f4042bac0f34affa738720285cba646c6c556c7e5202
BLAKE2b-256 checksum
How to use checksums
e6b80e7fa8b1903a608437216bd1bbe5f080ca0d960734686fb5ed52f474ca28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp310-cp310-macosx_11_0_x86_64.whl

Download URL koilang-1.1.2-cp310-cp310-macosx_11_0_x86_64.whl
Size 209.7 kB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
a66e74a1efa98b9278b1a160c8a72d4705a1c01ec082269d4093147b03bbc1d8
BLAKE2b-256 checksum
How to use checksums
a17796a84efa386479614019075468f7013cf3db713fc21ff4e995f64c8d36b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL koilang-1.1.2-cp310-cp310-macosx_11_0_arm64.whl
Size 219.0 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
583abb03c92d4b2ede522c2384503017be9dc419f57fc168f9c7ad94dcbf59e3
BLAKE2b-256 checksum
How to use checksums
f92c0b1389d6506f9b9d882ed109468ad8f84f6b13a894aaae9d5476fa6b447b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp39-cp39-win_amd64.whl

Download URL koilang-1.1.2-cp39-cp39-win_amd64.whl
Size 193.9 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
c447df0e10b4eca512c22ed2ff39754c14cea4b378c0af606642e7ebe73fe0d9
BLAKE2b-256 checksum
How to use checksums
39d6c6f3e6438914d649e95c4309ca7911785f0410b29916ec62dcfb1248daf0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp39-cp39-win32.whl

Download URL koilang-1.1.2-cp39-cp39-win32.whl
Size 168.0 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
c926d180e03a29adfa8c4c1675a7ffcebbc87def15ad381850966c6a2894ad49
BLAKE2b-256 checksum
How to use checksums
cff28c4d51c53b9662cc853a1192c459e66133b49b2f8225720abee3cf859d8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL koilang-1.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.0 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1c1b7f8087df990a9a8c8e06cad285ada0621f29ad2c40edceb39b1b9ed37fb6
BLAKE2b-256 checksum
How to use checksums
36c96fed8749f73767d7987a4a4c63986bcebac670d7d46ad5597492b01be583
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL koilang-1.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 1.0 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
ce9db8faa9e950a8c64967e5adeb9080cb3b023a509cff29799dfaa4a0a8ce09
BLAKE2b-256 checksum
How to use checksums
5fb675eda3aa79e3b1840c238caab281bad3c210903d6ca838da469269782464
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp39-cp39-macosx_11_0_x86_64.whl

Download URL koilang-1.1.2-cp39-cp39-macosx_11_0_x86_64.whl
Size 210.5 kB
Tags CPython 3.9 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
348608096c00c95c4e1e1e458c75cfa9260fdd323980f076bf1584ffa9375af1
BLAKE2b-256 checksum
How to use checksums
d48eff609a5f46666fb5e9735d8fc0db8791e40ef30df00c9e5051f26092deac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp38-cp38-win_amd64.whl

Download URL koilang-1.1.2-cp38-cp38-win_amd64.whl
Size 196.4 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
79fd60522192a3e5d766365fc4b092183ced325119dda9245c228fdc69aa38d3
BLAKE2b-256 checksum
How to use checksums
af418179e81f97a4d4fc7390a8d13dd398ce28d419a9a0cbba75b09dfef610c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp38-cp38-win32.whl

Download URL koilang-1.1.2-cp38-cp38-win32.whl
Size 170.4 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
c8b9f19423a2f57e07cd8b61bb8570b5199090cc61fbe0e1d5f5d63b6b1d0961
BLAKE2b-256 checksum
How to use checksums
0f685f43bf1ca4a3b4cbf9abdffaa240004e8d0d94d31160bddb671ec2c0ba50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / koilang-1.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL koilang-1.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 1.1 MB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0235652428407aaa8f993be44bf358a837ba37a8fe6c3233b4cc6715adaf787d
BLAKE2b-256 checksum
How to use checksums
9185a3deadd82aabd139e71a32cf05e142e048e1fbbfbb29f40625282be50603
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl

Download URL koilang-1.1.2-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Size 1.1 MB
Tags CPython 3.8 Linux glibc 2.28+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
6679771ad7cf44c06dc0b175279e818a5263bed68517be2ab6af24cf842a66ed
BLAKE2b-256 checksum
How to use checksums
809cbab56cc9cea2b9a4873044e16a1b988888c597a3095bade957ea1ef1aa1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.13

Release files / koilang-1.1.2-cp38-cp38-macosx_11_0_x86_64.whl

Download URL koilang-1.1.2-cp38-cp38-macosx_11_0_x86_64.whl
Size 214.2 kB
Tags CPython 3.8 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
498a7edebb7ba3fa05c99adff2b8780e347870b44a2d8ee8f27e98fbd2c0463c
BLAKE2b-256 checksum
How to use checksums
543ed9aa425bd638639af802958d79c2ac6e776260d769a6e4619ecd2d307ee9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page