Skip to main content

Welcome to crocodile

Fill your life with one-liners, take your code to artistic level of brevity and readability while simultaneously being more productive by typing less boilerplate lines of code that are needless to say.

This package extends many native Python classes to equip you with an uneasy-to-tame power. The major classes extended are:

  • list is extended to List

    • Forget that for loops exist, because with this class, for loops are implicitly used to apply a function to all items. Inevitably while programming, one will encounter objects of the same type and you will be struggling to get a tough grab on them. List is a powerful structure that put at your disposal a grip, so tough, that the objects you have at hand start behaving like one object. Behaviour is ala-JavaScript implementation of forEach method of Arrays.
  • dict is extended to Struct.

    • Combines the power of dot notation like classes and key access like dictionaries.
  • pathlib.Path is extended to P

    • P objects are incredibly powerful for parsing paths, no more than one line of code is required to do any operation. Take a shufti at this:
    path = tb.P("dataset/type1/meta/images/file3.ext")
    >> path[0]  # allows indexing!
    P("dataset")
    >> path[-1]  # nifty!
    P("file3.ext")
    >> path[2:-1]  # even slicing!
    P("meta/images/file3.ext")
    

    This and much more, is only on top of the indespensible pathlib.Path functionalities.

  • Additionally, the package provides many other new classes, e.g. Read and Save. Together with P, they provide comprehensive support for file management. Life cannot get easier with those. Every class inherits attributes that allow saving and loading in one line.

Furthermore, those classes are inextricably connected. For example, globbing a path P object returns a List object. You can move back and forth between List and Struct and DataFrame with one method, and so on.

  • Deep Learning Modules.
    • A paradigm that facilitates working with deep learning models that is based on a tri-partite scheme:
      • HyperParameters: facilitated through HParams class.
      • Data: facilitated though DataReader class.
      • BaseModel is a frontend for both TensorFlow & Pytorch backends. The wrapper worked in tandem.
    • The aforementioned classes cooperate together to offer sealmess workflow during creation, training, and saving models.

Install

In the commandline: pip install crocodile.

Being a thin extension on top of almost pure Python, you need to worry not about your venv, the package is not aggressive in requirements, it installs itself peacefully, never interfere with your other packages. If you do not have numpy, matplotlib and pandas, it simply throws ImportError at runtime, that's it.

Getting Started

That's as easy as taking candy from a baby; whenever you start a Python file, preface it with following in order to unleash the library:

import crocodile.toolbox as tb

A Taste of Power

Suppose you want to know how many lines of code in your repository. The procedure is to glob all .py files recursively, read string code, split each one of them by lines, count the lines, add up everything from all strings of code.

To achieve this, all you need is an eminently readable one-liner.

tb.P.cwd().search("*.py", r=True).read_text().split('\n').apply(len).to_numpy().sum()

How does this make perfect sense?

  • search returns List of P path objects
  • read_text is a P method, but it is being run against List object. Behind the scenes, responsible black magic fails to find such a method in List and realizes it is a method of items inside the list, so it runs it against them and thus read all files and containerize them in another List object and returns it.
  • A similar story applies to split which is a method of strings in Python.
  • Next, apply is a method of List. Sure enough, it lives up to its apt name and applies the passed function len to all items in the list and returns another List object that contains the results.
  • .to_numpy() converts List to numpy array, then .sum is a method of numpy, which gives the final result.

Methods naming convention like apply and to_numpy are inspired from the popular pandas library, resulting in almost non-existing learning curve.

Friendly interactive tutorial.

Please refer to Here on the main git repo.

Full docs:

Click Here

Author

Alex Al-Saffar. email

Metadata

Release files for crocodile 5.6

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

Source distribution (sdist)

Source distribution for crocodile 5.6
File Size Uploaded
crocodile-5.6.tar.gz 82.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crocodile 5.6
File Interpreter ABI Platform
crocodile-5.6-py3-none-any.whl Python 3 none any Details

Total release size: 166.9 kB

Release files / crocodile-5.6.tar.gz

Download URL crocodile-5.6.tar.gz
Size 82.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ad8b4970872a813b70dbc1db6c813acd8b9f36c316a97786e4148e7670a8efcd
BLAKE2b-256 checksum
How to use checksums
8f1d0a637867180f18f60b9acc16bf497aab5f9feeec5aa6591255aa6c8f3815
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

Release files / crocodile-5.6-py3-none-any.whl

Download URL crocodile-5.6-py3-none-any.whl
Size 84.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c57c3508552a8f0b138170cd971af981b39dd5fcceaeb4c9c589f2f24a3ecb39
BLAKE2b-256 checksum
How to use checksums
1b73aa16ac430d2b9d6395a16443aa11b6c99365a5479519c688d7283ee44772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.10

Release history Release notifications | RSS feed

15.0

2 release files

14.8

2 release files

14.7

2 release files

14.6

2 release files

14.5

2 release files

14.3

2 release files

14.2

2 release files

14.1

2 release files

14.0

2 release files

13.9

2 release files

13.8

2 release files

13.7

2 release files

13.5

2 release files

13.4

2 release files

13.3

2 release files

13.2

2 release files

13.1

2 release files

13.0

2 release files

12.0

2 release files

11.2

2 release files

11.1.0

2 release files

11.0.0

2 release files

10.4.0

2 release files

10.3.5

2 release files

10.3.1

2 release files

10.3.0

2 release files

10.2

2 release files

10.1.0

2 release files

10.0

2 release files

9.0

2 release files

8.40

2 release files

8.20

2 release files

8.0

2 release files

7.30

2 release files

7.20

2 release files

7.10

2 release files

7.0

2 release files

6.70

2 release files

6.60

2 release files

6.35

2 release files

6.30

2 release files

6.21

2 release files

6.20

2 release files

6.15

2 release files

6.10

2 release files

6.5

2 release files

6.0

2 release files

5.91

2 release files

5.63

2 release files

5.41

2 release files

5.32

2 release files

5.31

2 release files

5.8

2 release files

5.7

2 release files

This release

5.6 This release

2 release files

5.5

2 release files

5.4

2 release files

5.2

2 release files

5.0

2 release files

4.5

2 release files

4.0

2 release files

3.0

2 release files

2.3

2 release files

2.2

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.9.0

2 release files

1.0

2 release files

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