Skip to main content

oui

Making highly reusable UI components for sound recognition pipelines.

If more people use a component, reuse is a given. So how do we make more people use a component? The component should be:

  • useful
  • easy to use
  • easy to adapt (because one size rarely fits all)

We should have three "contexts" in mind:

  • use in front-end dev
  • use from python (dash -- or other py-js bridgin tool)
  • use from python (jupyter notebooks)

What components? Some really high level ones (lists, tables, nested data)? Some more specific: Hear/view sound, configs CRUD, etc.

Architectural notes

The following are just suggestions, but follow them unless you have a defendable reason not to. Also, do add/edit these if you have some ideas of your own.

One folder per component, with python interface in the __init__.py under it.

If python and js need to share some resources (say settings, defaults, etc.), put these in ONE place (for example a json file) from which both python and js will source these.

Include as many defaults and annotations as possible. We want the components to be used out-of-the-box, and only tuned if and when needed. Defaults can be dumb values, or "smart" (set dynamically according to the context)

Name your values. For example, instead of 24 or 3600 in the code, define HOURS_PER_DAY = 24 and SECONDS_PER_HOUR = 3600 and use these names.

Extract as many variables from the code and and perculate them higher in the interface (such as function arguments or module constants).

Components

Keep in mind: What are our abstract objects and operations that we want the user to perform on these, and what ways can we provide to do so.

What kinds of ways can I allow the user to view, navigate, search, create, or edit... lists, tables, nested data?

What kinds of data do we typically deal with, and in what form, and what do we do with this data? We have sounds and annotations thereof. We want to be able to upload and download sounds, hear and view them, do CRUD on annotations, go from annotations to annoted (sound) and see what annotations we have for a given sounds.

Etc.

Lists

Ways to view lists of jsons. Needs a list nevigation and a json viewing protocol.

Tables

Ideally one that tries to adapt automatically to a context (e.g. what do we do when the table is too small/big horizontally/vertically), but with many properties than can be turned off/on or parametrized (e.g. sortable, searchable, collapsable, etc)

Nested data

Collapse/Expand file tree view? Page by page flat view?

Configs CRUD

Hear sound

What do we do when the sound is big?

View sound

What do we do when the sound is big?

Spectrogram

What do we do when the sound is big?

waveform plot (and aggregates)

Putting viewing and hearing together

Splatter stuff

Named selections

Of sounds, annotations, etc.

Contents

useful

easy

adaptable

Reusability tricks

useful

easy

adaptable

Metadata

Release files for oui 0.3.3

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

Source distribution (sdist)

Source distribution for oui 0.3.3
File Size Uploaded
oui-0.3.3.tar.gz 281.6 kB Details

Built distribution (wheel)

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

Total release size: 567.3 kB

Release files / oui-0.3.3.tar.gz

Download URL oui-0.3.3.tar.gz
Size 281.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3f18bac96dd1333f85d27506395e8604a060d4c0261632bfbd3fd07929ca1c84
BLAKE2b-256 checksum
How to use checksums
c2b6aa5b724780edbdd4e0d05ed7d0b21efd7e8c40ec03916dace29b1c296b93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release files / oui-0.3.3-py3-none-any.whl

Download URL oui-0.3.3-py3-none-any.whl
Size 285.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d32ab4bf0eaac2d413d5b475fe7ffae861e98b3076486d3763705944c920f81d
BLAKE2b-256 checksum
How to use checksums
549d0f6be76a97c36ff7506718909d61e9359f19cd394c6d746a0b3ee481f00e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release history Release notifications | RSS feed

This release

0.3.3 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

2 release files

0.1.0

1 release file

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.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