Skip to main content
https://badge.fury.io/py/easydev.svg https://github.com/cokelaer/easydev/actions/workflows/main.yml/badge.svg https://coveralls.io/repos/cokelaer/easydev/badge.svg?branch=main https://static.pepy.tech/personalized-badge/easydev?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads
documentation:

http://easydev-python.readthedocs.io/en/latest/

contributions:

Please join https://github.com/cokelaer/easydev

source:

Please use https://github.com/cokelaer/easydev

issues:

Please use https://github.com/cokelaer/easydev/issues

Python version supported:

3.9, 3.10, 3.11, 3.12, 3.13, 3.14

Overview

The easydev package provides miscellaneous utility functions and classes that are repeatedly useful during the development of Python packages. The goal is to help developers speed up their work by providing ready-to-use tools for common tasks such as parameter validation, logging, progress bars, configuration files, multiprocessing, and more.

It has been used as an incubator for other packages (e.g., colormap) and is used in projects such as bioservices, sequana, and GDSCTools.

Installation

Install the latest release from PyPI:

pip install easydev

Features

  • Parameter validation – check_param_in_list, check_range

  • Dictionary utilities – swapdict, AttrDict (access dict keys as attributes, supports nested dicts)

  • Logging – coloured logging via Logging class

  • Progress bar – Progress works in Python, IPython, and Jupyter notebooks

  • Timer – measure elapsed time with the Timer context manager

  • Profiling – do_profile decorator using line_profiler

  • Configuration files – CustomConfig and DynamicConfigParser for INI-style config management

  • Shell commands – shellcmd and execute wrappers around subprocess/pexpect

  • File utilities – touch, mkdirs, md5

  • Multiprocessing – MultiProcessing class for easy parallel job execution

  • Codecs – to_list, list2string and other conversion helpers

  • URL utilities – isurl_reachable and related helpers

  • Sphinx integration – bundled Sphinx theme and copybutton extension

Quick Start

Parameter validation:

from easydev import check_param_in_list, check_range

check_param_in_list("on", ["on", "off"])   # passes silently
check_range(0.5, 0, 1)                     # passes silently

AttrDict – access nested dictionary keys as attributes:

from easydev import AttrDict

d = AttrDict(**{"server": {"host": "localhost", "port": 8080}})
print(d.server.host)   # localhost
d.server.port = 9090

Coloured logging:

from easydev import Logging

logger = Logging("myapp", "WARNING")
logger.warning("something went wrong")
logger.debug("not shown at WARNING level")
logger.level = "DEBUG"
logger.debug("now it is shown")

Progress bar:

from easydev import Progress

pb = Progress(100)
for i in range(100):
    # do work here
    pb.animate(i + 1)

Timer:

from easydev import Timer
import time

times = []
with Timer(times):
    time.sleep(0.1)
print(f"elapsed: {times[0]:.2f}s")

Multiprocessing:

from easydev.multicore import MultiProcessing

def square(n):
    return n * n

t = MultiProcessing(maxcpu=4)
for i in range(10):
    t.add_job(square, i)
t.run()
print(t.results)

Changelog

Version

Description

0.13.3

  • update pyproject with contribs from @s-t-e-v-e-n-k see PR37

0.13.2

0.13.1

  • fix get_dependencies

0.13.0

  • fix requirements (line_profiler) and CI

0.12.2

  • For developers: move to pyproject. add precommit

  • replace pkg_resources (deprecated) with importlib

  • replace appdirs with more generic platformdirs

Metadata

Release files for easydev 0.14.0

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

Source distribution (sdist)

Source distribution for easydev 0.14.0
File Size Uploaded
easydev-0.14.0.tar.gz 36.9 kB Details

Built distribution (wheel)

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

Total release size: 94.5 kB

Release files / easydev-0.14.0.tar.gz

Download URL easydev-0.14.0.tar.gz
Size 36.9 kB
Tags Source
SHA-256 checksum
How to use checksums
da3c82b89debe71c13d946a6514a85bdc3034fa878aeaf9d361721f07ac42f44
BLAKE2b-256 checksum
How to use checksums
f8bda73fd1828ab7e152d9c71123396b581c529f3b01f37a1e845339f476e18d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.10.14 Linux/6.14.5-100.fc40.x86_64

Release files / easydev-0.14.0-py3-none-any.whl

Download URL easydev-0.14.0-py3-none-any.whl
Size 57.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
774cce412ad543ef707fc3f437eff200422bee4ca2b1b7e063fa5ca40b48d942
BLAKE2b-256 checksum
How to use checksums
0f4d1f697261368745b5d6cdfc952bb91cfa9fb72c74bf1c5d120039571922fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.0.1 CPython/3.10.14 Linux/6.14.5-100.fc40.x86_64

Release history Release notifications | RSS feed

This release

0.14.0 This release

2 release files

0.13.3

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.2

2 release files

0.12.1

1 release file

0.12.0

1 release file

0.11.2

1 release file

0.11.1

1 release file

0.11.0

1 release file

0.10.1

1 release file

0.10.0

1 release file

0.9.38

1 release file

0.9.37

1 release file

0.9.36

1 release file

0.9.35

1 release file

0.9.34

1 release file

0.9.33

1 release file

0.9.32

1 release file

0.9.31

1 release file

0.9.30

1 release file

0.9.29

1 release file

0.9.28

1 release file

0.9.27

1 release file

0.9.26

1 release file

0.9.25

1 release file

0.9.23

1 release file

0.9.22

1 release file

0.9.21

1 release file

0.9.20

1 release file

0.9.19

1 release file

0.9.18

1 release file

0.9.17

1 release file

0.9.16

0.9.15

1 release file

0.9.14

1 release file

0.9.13

1 release file

0.9.12

1 release file

0.9.11

1 release file

0.9.10

1 release file

0.9.9

1 release file

0.9.7

1 release file

0.9.6

1 release file

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.8.9

1 release file

0.8.8

1 release file

0.8.7

1 release file

0.8.6

1 release file

0.8.5

1 release file

0.8.4

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8.0

1 release file

0.7.4

1 release file

0.7.3

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.13

1 release file

0.6.12

1 release file

0.6.11

1 release file

0.6.10

1 release file

0.6.9

1 release file

0.6.8

1 release file

0.6.7

1 release file

0.6.6

1 release file

0.6.5

1 release file

0.6.4

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

0.6.0

1 release file

0.5.9

1 release file

0.5.8

1 release file

0.5.7

1 release file

0.5.6

1 release file

0.5.5

1 release file

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