A ULauncher/Albert extension that supports currency, units and date time conversion, as well as a calculator that supports complex numbers and functions.

Overview

drawing Ulauncher/Albert Calculate Anything

Platforms Python Versions License Latest Version Requirements Status

Linux CI Windows CI macOS CI Benchmark CodeQL Codecov

Code Style

Ulauncher/Albert Calculate Anything is an extension for Ulauncher and Albert to calculate things like currency, time, percentage, units, complex equations, base-n expressions and more.

The calculate_anything module does not depend on Ulauncher or Albert so it is extensible for other use cases (see demo with prompt_toolkit).

See Features for supported features, Contents for installation instructions and more

Albert Demo

Albert Demo

Ulauncher Demo

Ulauncher Demo

Features

Calculator for Anything

  • Currency Converter: See Currency for examples
  • Time Converter: Convert time to other timezones and compute time expressions or find time remaining until any date-time. See Time for examples.
  • Units Converter: Compute and Convert units to other units. See Units for examples.
  • Normal Calculator: Supports functions such as cos, sin, tan. Check Calculator for examples.
  • Complex Numbers Calculator: Also supports Normal Calculator's functions. Check Calculator for examples.
  • Percentage Calculator Calculate percentages see Percentages for examples.
    • Supports all expressions that Normal Calculator and Complex Calculator Support
  • Base N Calculator: Calculate numbers and expressions to other number base. See Base N Calculator for examples.
    • Base 16 (hex): Calculates expression to decimal, biniary, octal, color (i.e RGB, YSV, etc), Bytes (representation of string)
    • Base 2 (bin), Base 8 (oct), Base 10 (dec)
    • Supports functions: or, xor, and, mod, div, +, -, /

The only launcher specific files for ulauncher and albert are main.py, __init__.py in the root of this project

Dependencies: simpleeval, pint parsedatetime and pytz (for parsedatetime) Currency and Unit converter as well as a Calculator for numbers, complex numbers, percentages and time that supports mathematical functions and Complex Numbers.

Optional Dependencies: babel. Installing this will format your results in your language/locale.

Contents

Install for Ulauncher

Thus extension depends on Pint, simpleeval and parsedatetime. Install them with:

# You probably have some of them already installed
pip install Pint simpleeval parsedatetime pytz

# Optionally for translations and formatting to your locale
pip install babel

Open Ulauncher go to Extensions > Add extension and paste https://github.com/tchar/ulauncher-albert-calculate-anything

Install for Albert

Similarly to Ulauncher the same dependencies are are required.

To install the extension for Albert run

# You probably have some of them already installed
pip install Pint simpleeval parsedatetime pytz

# Optionally for translations and formatting to your locale
pip install babel

# Determine Install location
[ -z "$XDG_DATA_HOME" ] && INSTALL_DIR=~/.local/share || INSTALL_DIR=$XDG_DATA_HOME

# Create module directory if not exists
mkdir -p $INSTALL_DIR/albert/org.albert.extension.python/modules/

# Install extension
git clone https://github.com/tchar/ulauncher-albert-calculate-anything $INSTALL_DIR/albert/org.albert.extension.python/modules/

Open albert, enable Python extensions and then enable the Calculate Anything extension.

You can double click it to open module's location and edit __init__.py to add your preferences.

How to Setup

Albert

If you are using Albert open the extension location normally at ~/.local/share/albert/org.albert.extension.python/modules/ulauncher-albert-calculate-anything/__init__.py and edit the preferences mentioned below in the apropriate variable API_KEY, CACHE, DEFAULT_CURRENCIES, DEFAULT_CITIES, SHOW_EMPTY_PLACEHOLDER or __triggers__ for the keyword

The extension can work in albert without keywords if you comment out the __triggers__ option, however if another extension has the keyword you type, Calculate Anything won't trigger (see relevant issue)

Ulauncher

If you are using Ulauncher use the extension preferences.

Set Currency Provider

You can select from different currency providers. Supported providers are:

Preferences:

  • ULauncher: Select one in currency provider
  • Albert: Modify the CURRENCY_PROVIDER in __init__.py to one of [fixerio, internal (European Central Bank)]

Set API Key

In order for the currency conversion to work for providers that need an API Key, you need to set it in the preferences.

  • ULauncher: Copy your api key to the API KEY box in preferences
  • Albert: Modify the API_KEY in __init__.py

Cache

For currency conversion you can enable the cache for a minimum of 1 day up to 1 year. This will store the results fetched by your currency provider to prevent redundant requests. This is especially helpful if you have a free plan on a paid currency provider that limits your requests. It will also display the results faster, since no request is made. If all requested currencies have been cached, no request is made.

  • Ulauncher: Edit Currency Cache in the extension preferences
  • Albert: Edit CACHE=86400 in __init__.py and set it to your interval in seconds

Default currency

In the preferences you can define a comma separated list of default currencies to show when typing conversion without target unit/currency. Defaults to USD,EUR,CAD,GBP,AUD

  • ULauncher: Edit in Default Currencies preferences
  • Albert: Edit DEFAULT_CURRENCIES in __init__.py

Default cities

In the preferences you can define a comma separated list of default cities when using the time command

  • ULauncher: Edit in Default Currencies preferences
  • Albert: Edit DEFAULT_CITIES in __init__.py

Units Conversion Mode

In the preferences you can define a units conversion mode. For now there is normal (default) and crazy.

Crazy means that the unit converter/calculator tries to convert all possible units (currency included) available under the name.

See Currency and Units for more

Crazy mode is experimental and bugs are to be expected

  • ULauncher: Edit in Units Conversion mode preferences
  • Albert: Edit UNITS_CONVERSION_MODE in __init__.py

Show Empty Placeholder

  • ULauncher: Default is No. Set to Yes to show an empty placeholder when extension doesn't return anything
  • Albert: Change SHOW_EMPTY_PLACEHOLDER=True in __init__.py

Commands and Syntax

To calculate/convert anything you can use the keywords

  • =: For currency, units and calculator
  • time: For time calculations
  • dec/hex/bin/oct: For base-n and calculations

You can go directly to examples or use the ones from the demo

To convert currency type your keyword and then

  • AMOUNT CURRENCY to get conversion in the default currencies set in the preferences (requires cache)
  • AMOUNT CURRENCY in(or to) CURRENCY1,CURRENCY2,CURRENCY3
  • CURRENCY in(or to) CURRENCY1,CURRENCY2,CURRENCY3

To convert units use

  • AMOUNT UNIT in(or to) UNIT1,UNIT2,UNIT3
  • UNIT in(or to) UNIT1,UNIT2,UNIT3

Comma separated units and currencies can have spaces between them.

For time you can use the time keyword with a syntax

  • time To get the current time plus the default cities you defined in the preferences
  • time at CITY,[COUNTRY|COUNTRY CODE|STATE CODE] to get the current time for a specified city
  • time + AMOUNT [MONTH|YEAR|WEEK|DAY|HOUR|MINUTE|SECOND] [+ AMOUNT ...] [at CITY, [COUNTRY|COUNTRY CODE|STATE CODE]] to get the time after the calculation at a specified city.

To calculate an expression just type your expression as in the demo

  • You can use functions such as tan,atan,asinh
  • You can use complex numbers too like 1 + 5i

To calculate percentages you can use one of the following

  • AMOUNT1% of AMOUNT2 to calculate the AMOUNT1 percent of AMOUNT2
  • AMOUNT1 as % of AMOUNT2 to calculate AMOUNT1 as a percentage of AMOUNT2

If you select one results it will be copied to clipboard.

Examples

Currency

Simple Conversion

  • Convert 10 euros to american dollars
    • 10 eur to USD
    • 10 euros to $
    • 10 eurs to dollars

Multiple Conversion

  • Convert 10 euros to american dollars, canadian dollars, bitcoin, and mexican pesos
    • 10 EUR to USD,canadian,bitcoin,mexican

Crazy Conversion

crazy mode must be enabled in preferences

  • Convert 1 us dollar per pound to euros per kilogram
    • 1 $ / pound to EUR / kg
  • Convert 10 us dollars per square foot squared to canadian dollars per meter squared
    • 10 $ / foot ^ 2 to CAD / meter ^ 2

Time

You can also add and subtract time For example if now is 2021-07-05 14:14:42 then you can use the following

Be careful to use date timespans like 2 years 5 months 2 weeks 3 days 1 hour 4 minutes 3 seconds and not dates like December 2022.

In the following examples the time returned is accompanied by the date time in the default cities you specified in the extension preferences

  • time: Returns 2021-07-05 14:14:42 as well as the date time in the default cities specified in settings
  • time plus 1 hour: Returns Today at 15:14:42
  • time + 1 day: Returns Tomorrow at 14:14:42
  • time minus 1 day: Returns Yesterday at 14:14:42
  • time + 2 hours 2 minutes 5 seconds: Returns Today at 15:16:47
  • time + 1 year: Returns 2022-07-05 14:14:42
  • time + 1 year 2 days 2 hours - 4 years 4 minutes: Returns 2018-07-07 16:10:42

Specifying a target city

You can use all the commands above followed by at CITY NAME or at CITY NAME, COUNTRY NAME|COUNTRY CODE|STATE CODE to get te result in your local time as well as the specified city

  • time at Prague
  • time + 2 hours at Madrid
  • time + 2 hours at Vancouver, CA: (There are two Vancouvers, so by specifying CA as returns the Canadian Vancouver)
  • time + 2 days 3 seconds at Vancouver, Canada
  • time + 1 hour + 3 years at Athens, AL: (Athens AL refers to Athens at Alabama)

Using until

You can also use the until command (Experimental) to calculate duration of time until a specific date

Note: The midnight keyword shifts one day after, so midnight is considered to belong in the next day

In the following examples you can specify a specific date and time or say for example a number of years months etc.

Keywords such as a/next/last/previous/ago, years/months/weeks/days/hours/minutes/seconds, morning/noon/afternoon/evening/night/midnight, tomorrow/yesterday and the combination of those will work like in the normal mode.

  • time until December 31 midnight: Returns remaining days, hours minutes until January 00:00:00 (end of day for December)
  • time until midnight: Returns remaining hours minutes seconds until midnight for this day (midnight is at 00:00:00)
  • time until tomorrow: Day starts at 09:00
  • time until tomorrow evening: Hours/Days until tomorrow at 18:00
  • time until a year ago: Negative result
  • time until 2000000 year: Easter egg

And many more combinations

Units

The units supported are all units that pint supports (which is quite a lot)

Simple Conversion

  • Convert 100 fahrenheit to celsius
    • 100 f to c

Multiple Conversion

  • Convert 20 centimeters to inches and meters
    • 20 cm to inches, m
    • 20 cm to inches,meters

Advanced Conversion

  • Convert kilometers per meter to centimeters per minute, kilometers per minute, inches per second and centimeters per second.
    • 20 km/h to cm/min, km/minute, in/s, cm/sec
  • Convert kilowhats per second to horsepower per hour and megawatts per second
    • 10 kw/sec to hp/h, mw/s
  • Convert meters per squared second to kilometers per squared hour
    • 10 m/s^2 to km/h^2
  • Convert megabytes per second to gigabytes per hour
    • 10 mb/s to gb/h

You can lieterally convert anything if the apropriate units match

  • Convert kilometer * centimeter * second per gibabyte to inches * meter * hour per megabyte
    • 10 km * cm * s / gb to inches * meter * hour / mb

Crazy Conversion

crazy mode must be enabled in preferences

  • 1 m to cm may have two compatible units meter and mole, so it will return both results

Percentages

Simple Cases

  • Calculate what is 10% of 40
    • 10% of 40: Answer is 4
  • To calculate what percentage of 30 is 5, any of the following works
    • 5 is what % of 30: Answer is 16.6667%
    • 5 is what % 30
    • 5 as % of 30
    • 5 in % of 30
    • 5 in % 30

Advanced Cases

  • 10% of cos(pi) + 5: Answer is 0.4
  • 3 + 2 * pi % of cos(pi) + 5: Answer is 0.371328
  • 5 as % sqrt(2) + 5: Answer is 77.9519%
  • 1 + sin(pi) as % sqrt(2) + 5: Answer is 15.5904%

Calculator

The calculator works like a normal calculator, but is able to work with complex numbers too.

The following constants exist: pi, e, tau and others from cmath

The following functions exist: phase, polar, rect, exp, log, log10, sqrt, acos, asin, atan, cos, sin, tan, acosh, asinh, atanh, cosh, sinh, tanh and others from cmath

Simple Cases

  • 10 + sqrt(2): Answer is 11.4142
  • 10 + cos(pi) + 30 * e ^ 2: Answer is 230.672

Complex Numbers

Use i as the imaginary unit

  • 10 + sqrt(2) + i: Answer is 11.4142 + i
  • cos(1 + i): Answer is 0.83373 - 0.988898i
  • e ^ (pi * i) + 1: Answer is 0 (Euler's identity)

Base N Calculator

Use with the keywords hex, dec, bin, oct by default.

Simple Cases

  • dec 1000: Returns result in hex, bin, oct
  • hex ffa12: Returns result in dec, bin, oct as well as bytes representation of the input query (including spaces)
  • bin 10101: Returns result in dec, hex, oct

Special cases with hex

The hex calculator will always produce the byte representation of its input query.

Color Conversion with hex

If the input is in the format of #xxxxxx where xxxxxx is a valid hex number, it will convert the number representing a color to other color formats.

  • hex #fa1234: Returns colors result in rgb, hsv, hsl, cmyk.

Advanced Cases

  • dec/hex/bin/oct 10101 and 10110 xor 10 + 1010 - 1010 div 10 and 10101: Returns the result in all available base-n (dec, hex, oct, bin)
    • Digits must be valid in the base you are using (e.g 2012 is invalid for bin)

Known Issues

If at any moment currency stops showing try removing the currency cache file and restart the Launcher/program

Linux

rm ~/.cache/com.github.tchar.calculate-anything/currency_data.json

Windows

rm ~\AppData\Local\tchar\com.github.tchar.calculate-anything\Cache\currency_data.json

macOS

rm ~/Library/Caches/com.github.tchar.calculate-anything/currency_data.json

Extending and More

The calculate_anything module does not depend on ulauncher or albert, only the main.py (for Ulauncher) and __init__.py (for albert) do. You can extend it for other cases.

See the documentation for API call examples

You can also find a sample usage of the API using prompt_toolkit at the prompt.py file.

Here is a demo

Adding flags

If your currencie's flag is missing you can place it in the extension's flags directory at calculate_anything/images/flags/ and restart your launcher or make a pull request to include it.

Make sure to name your flag image in uppercase 2 letter name of your country. To make a currency flag, simply link the country flag you want to the currency e.g ln -s US.svg USD.svg or add a completely new flag For example American Dollar's flag is in calculate_anything/images/flags/USD.svg. You can use most image formats (i.e svg, png)

Flag Icons made by Freepik from www.flaticon.com
Comments
  • [bug] Extension crashed after updating and saving new settings and then crashes instantly on reload

    [bug] Extension crashed after updating and saving new settings and then crashes instantly on reload

    Describe the bug

    After updating the extension to the latest version (cdc539c), then trying to change values for Default Cities (added salt lake city for e.g.), it wouldn't save the settings. Now, it crashes on reload.

    To Reproduce

    Steps to reproduce the behavior:

    • Added Salt Lake City US to Default cities
    • Save settings

    Expected behavior

    Save the settings and be able to run the extension. Now it crashes on reload with following error in ulauncher: ERROR | ulauncher.api.server.ExtensionRunner: _run_process() | Extension "com.github.tchar.ulauncher-albert-calculate-anything" failed with an error: locale.Error: unsupported locale setting

    Error in preferences pane when saving (first time)

    Message: 'com.github.tchar.ulauncher-albert-calculate-anything' Error Name: UnhandledError Type: KeyError

    Stacktrace:

    Traceback (most recent call last):
      File "/usr/lib/python3.9/site-packages/ulauncher/ui/windows/PreferencesUlauncherDialog.py", line 198, in on_scheme_callback
        resp = rt.dispatch(self, scheme_request.get_uri())
      File "/usr/lib/python3.9/site-packages/ulauncher/utils/Router.py", line 49, in dispatch
        return callback(context, url_params)
      File "/usr/lib/python3.9/site-packages/ulauncher/ui/windows/PreferencesUlauncherDialog.py", line 444, in prefs_extension_update_prefs
        controller = ExtensionServer.get_instance().get_controller(ext_id)
      File "/usr/lib/python3.9/site-packages/ulauncher/api/server/ExtensionServer.py", line 76, in get_controller
        return self.controllers[extension_id]
    KeyError: 'com.github.tchar.ulauncher-albert-calculate-anything'
    
    

    Logs

    If possible please provide the logs from the log directory

    • Linux: /home/username/.cache/com.github.tchar.calculate-anything/log Directory is empty

    Screenshots

    screenshot-2021_08_12-14_00_34+1000

    Desktop (please complete the following information)

    • OS:
                       -`                    user@archripper
                      .o+`                   -----------------------
                     `ooo/                   OS: Arch Linux x86_64
                    `+oooo:                  Kernel: 5.13.9-zen1-1-zen
                   `+oooooo:                 Uptime: 4 hours, 17 mins
                   -+oooooo+:                Packages: 903 (pacman)
                 `/:-:++oooo+:               Shell: zsh 5.8
                `/++++/+++++++:              Resolution: 2560x1440
               `/++++++++++++++:             WM: sway
              `/+++ooooooooooooo/`           Theme: Adwaita [GTK2/3]
             ./ooosssso++osssssso+`          Icons: Adwaita [GTK2/3]
            .oossssso-````/ossssss+`         Terminal: alacritty
           -osssssso.      :ssssssso.        CPU: AMD Ryzen Threadripper 1950X (16) @ 3.750GHz
          :osssssss/        osssso+++.       CPU Usage: 1%
         /ossssssss/        +ssssooo/-       GPU: AMD ATI Radeon RX 470/480/570/570X/580/580X/590
       `/ossssso+/:-        -:/+osssso+-     GPU Driver: amdgpu
      `+sso+:-`                 `.-/+oso:    Memory: 9.65GiB / 125.66GiB (7%)
     `++:.                           `-/+/
     .`                                 `/
    
    
    bug 
    opened by darkfishy 12
  • [bug]

    [bug]

    Describe the bug

    Does not give time at any place except my own place. and if i gave it my place it does not work

    To Reproduce

    time at NYC or time at Calif gives my own timezone but time at cairo or time at cairo egypt does not give anything.

    Expected behavior

    Gives the current time at target city.

    Logs

    If possible please provide the logs from the log directory Supose your username is username:

    • Linux: /home/username/.cache/com.github.tchar.calculate-anything/log
    • Windows: 'C:\Users\username\AppData\Local\tchar\com.github.tchar.calculate-anything\Logs
    • macOS: /Users/username/Library/Logs/com.github.tchar.calculate-anything You can get then in a zip file and post it with the issue.

    Screenshots

    NYC time example

    Desktop (please complete the following information)

    • OS: Elementary OS 5.1.7 (based on Ubuntu Bionic 18.04 LTS)
    bug 
    opened by OmarShawky1 6
  • Linting with tox

    Linting with tox

    Move linting operations to tox

    • flake8
    • black

    Update gh actions to use tox for linting and codestyle

    • Use cache to restore tox environment

    Separate requirements

    opened by tchar 1
  • Code refactoring and typing

    Code refactoring and typing

    Move calculate_anything/calculation/calculation.py -> calculate_anything/calculation/calculator.py Move calculate_anything/query/multi_handler.py -> calculate_anything/query/handlers/multi_handler.py Move calculate_anything/test/calculation/test_calculation.py -> calculate_anything/test/calculation/test_calculator.py

    Add calculate_anything/time/data.py with typing for Cities

    Rename calculate_anything.calculation.base._Calculation to Calculation Rename calculate_anything.calculation.calculation.Calculation to CalculatorCalculation

    Introduce calculate_anything.calculation.base.CalculationError

    • Handles errors
    • Remove all error=None from every valid calculation and return a CalculationError object in case of errors
    • Refactor all handlers to add items with type of CalculationError where appropriate

    Add typing to every method, function, property

    opened by tchar 1
  • Improve threading

    Improve threading

    Improve thread lifecycle

    • Catch some edge cases in thread lifecycle to avoid starting it twice

    Improve tests

    • Use in_memory_cache for testing to avoid destroying real cache data
    opened by tchar 1
  • Tests for currency providers

    Tests for currency providers

    Implement tests for providers using pytest-httpserver

    • No request is made to an external service
    • All requests are handled with pytest-httpserver mock responses.

    Coverage: 88%

    opened by tchar 0
  • Implement better logging

    Implement better logging

    Logging now also logs to a file. By default $CACHE_DIR/logs

    • Logging to a file is implemented by a RotatingFileHandler
    • Disable StreamHandler for Ulauncher, since it uses its own
    • Properly implement a CustomHandler so that Albert can use it
    • Adjust all modules/functions/classes to use the new logging system
    • Add tests for logging

    Minor fixes

    opened by tchar 0
  • Ulauncher currency flags fix

    Ulauncher currency flags fix

    Remove symlink currency flags and replace them with copies of the corresponding svg of each country.

    Normally symlinks should work but ulauncher does not obey symlinks and just creates copies of the contents of the file on github.

    This fixes the problem with ulauncher not displaying currency flags.

    opened by tchar 0
  • [bug] If pint is not installed, suggest user restarts ulauncher after install

    [bug] If pint is not installed, suggest user restarts ulauncher after install

    Describe the bug

    The message reminding the user to install pint does not also suggest that the user restarts ulauncher to get around the error, but it is necessary (at least is was for me).

    To Reproduce

    Steps to reproduce the behavior:

    1. Install extension but do not install pint
    2. Open ulauncher and type =
    3. Notice a message saying something like "Install pint by running pip install pint"
    4. Install pint by running pip install pint.
    5. Open ulauncher and type =

    Expected behavior

    I expect newly installed pint to be recognized, since I followed the directions.

    What happened instead

    1. Got the same message saying "Install pint by running pip install pint"
    2. Start fiddling with it to get it to work, which starts with restarting ulauncher process.
    3. Notice that there is no more error message about pint

    Logs

    Sorry I don't have logs, please let me know if you actually need them for this.

    Screenshots

    If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information)

    • OS: [e.g. Ubuntu Linux 20.04 ]
      • Linux: If you don't know the version, these commands may help: cat /etc/os-release lsb_release -a hostnamectl
    ~ % uname --all
    Linux m 6.0.12-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 08 Dec 2022 11:03:38 +0000 x86_64 GNU/Linux
    ~ % cat /etc/os-release
    NAME="Arch Linux"
    PRETTY_NAME="Arch Linux"
    ID=arch
    BUILD_ID=rolling
    ANSI_COLOR="38;2;23;147;209"
    HOME_URL="https://archlinux.org/"
    DOCUMENTATION_URL="https://wiki.archlinux.org/"
    SUPPORT_URL="https://bbs.archlinux.org/"
    BUG_REPORT_URL="https://bugs.archlinux.org/"
    PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
    LOGO=archlinux-logo
    ~ % lsb_release -a
    LSB Version:    n/a
    Distributor ID: Arch
    Description:    Arch Linux
    Release:        rolling
    Codename:       n/a
    ~ % hostnamectl
    Static hostname: m
    Icon name: computer-laptop
    Chassis: laptop 💻Machine ID: ac2d7008d3874e7292bcc4dfcb25d7d7
    Boot ID: 17c682032a2147a88df688bb7d6b5fd7
    Operating System: Arch Linux
    Kernel: Linux 6.0.12-arch1-1
    Architecture: x86-64
    Hardware Vendor: Dell Inc.
    Hardware Model: XPS 13 9300
    Firmware Version: 1.15.0
    

    Additional context

    Add any other context about the problem here.

    bug 
    opened by mattalexx 0
  • Extension stopped converting: 'currency' is not defined in the unit registry

    Extension stopped converting: 'currency' is not defined in the unit registry

    Hey,

    The extension stopped working a few days ago. I've tried multiple conversions but I get no result with any of them.

    In the console I have this error: pint.errors.UndefinedUnitError: 'currency' is not defined in the unit registry

    Thank you!

    opened by krillin666 8
  • [bug] Crashed on Ulauncher 5.14.7

    [bug] Crashed on Ulauncher 5.14.7

    Describe the bug

    Calculate anything crashes everytime ulauncher is launched.

    To Reproduce

    Steps to reproduce the behavior: Just add the extension for Calculate Anything on Ulauncher.

    Expected behavior

    Proper output when given command.

    Logs

    runtime.log.zip

    Screenshots

    Screenshot_20220808_151723 Screenshot_20220808_151753

    Desktop (please complete the following information)

    Operating System: Kubuntu 20.04 KDE Plasma Version: 5.18.8 KDE Frameworks Version: 5.68.0 Qt Version: 5.12.8 Kernel Version: 5.15.0-43-generic OS Type: 64-bit Processors: 4 × Intel® Core™ i3-8130U CPU @ 2.20GHz Memory: 15.4 GiB of RAM

    bug stale 
    opened by Bishal-Mahanta 1
  • [bug] Calculation error sin(2*pi)

    [bug] Calculation error sin(2*pi)

    Describe the bug

    = sin(2*pi) gives 1 instead of 0 on ULauncher

    Expected behavior

    Should be 0.

    Logs

    runtime.log

    Screenshots

    grafik

    Desktop (please complete the following information)

    • OS: Xubuntu 5.4.0-97-generic #110-Ubuntu SMP Thu Jan 13 18:22:13 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    bug stale 
    opened by ChrisS85 1
  • [bug] Crashed on Ulauncher 5.14.4

    [bug] Crashed on Ulauncher 5.14.4

    Describe the bug

    Ulauncher displays Calculate Anything as Crashed.

    To Reproduce

    Just install Calculate Anything in the Ulauncher

    Expected behavior

    Working as non crashed

    Logs

    If possible please provide the logs from the log directory: runtime.zip

    Screenshots

    calculate_anything

    Desktop (please complete the following information)

    • OS: Debian Bookworm

    Additional context

    Wanted to make sure pytz is satisfied: pip3 install pytz --user Requirement already satisfied: pytz in ./.local/lib/python3.9/site-packages (2021.3)

    bug stale 
    opened by tukanos 3
  • [feature] Use the word

    [feature] Use the word "in" as alias for "to" in conversions

    When 20 cm in inches is typed, I would expect the same result as for 20 cm to inches. (The same syntax is supported by Google search, so I'm used to it.)

    Would be possible to add support for this as well? Thanks!

    enhancement stale 
    opened by sebastian-65 6
Owner
tchar
Software Engineer and infamous ScriptKiddie
tchar
Albert launcher extension for rolling dice.

dice-roll-albert-ext Extension for rolling dice in Albert launcher Installation Locate the modules directory in the Python extension data directory. T

Jonah Lawrence 1 Nov 18, 2021
A complete python calculator with 2 modes Float and Int numbers.

Python Calculator This program is made for learning purpose. Getting started This Program runs using python, install it via terminal or from thier ofi

Felix Sanchez 1 Jan 18, 2022
A calculator to test numbers against the collatz conjecture

The Collatz Calculator This is an algorithm custom built by Kyle Dickey, used to test numbers against the simple rules of the Collatz Conjecture.

Kyle Dickey 2 Jun 14, 2022
Class and mathematical functions for quaternion numbers.

Quaternions Class and mathematical functions for quaternion numbers. Installation Python This is a Python 3 module. If you don't have Python installed

null 3 Nov 8, 2022
A python script to decrypt media files encrypted using the Android application 'Secret Calculator Photo Vault'. Supports brute force of PIN also.

A python script to decrypt media files encrypted using the Android application 'Secret Calculator Photo Vault'. Supports brute force of PIN also.

null 3 May 1, 2022
A program that analyzes data from inertia measurement units installeed in aircraft and generates g-exceedance curves

A program that analyzes data from inertia measurement units installeed in aircraft and generates g-exceedance curves

Pooya 1 Nov 23, 2021
A program to generate random numbers b/w 0 to 10 using time

random-num-using-time A program to generate random numbers b/w 0 to 10 using time it uses python's in-built module datetime and an equation which retu

Atul Kushwaha 1 Oct 1, 2022
This python code will get requests from SET (The Stock Exchange of Thailand) a previously-close stock price and return it in Thai Baht currency using beautiful soup 4 HTML scrapper.

This python code will get requests from SET (The Stock Exchange of Thailand) a previously-close stock price and return it in Thai Baht currency using beautiful soup 4 HTML scrapper.

Andre 1 Oct 24, 2022
Functional collections extension functions for Python

pyfuncol pyfuncol Installation Usage API Documentation Compatibility Contributing License A Python functional collections library. It extends collecti

Andrea Veneziano 32 Nov 16, 2022
Flask-built web application that simulates a time and cost calculator for charging Electric Vehicles.

ev_charging_calculator Flask-built web application that simulates a time and cost calculator for charging Electric Vehicles. The project aims to simul

null 1 Nov 3, 2021
Audio-analytics for music-producers! Automate tedious tasks such as musical scale detection, BPM rate classification and audio file conversion.

Click here to be re-directed to the Beat Inspect Streamlit Web-App You are a music producer? Let's get in touch via LinkedIn Fundamental Analytics for

Stefan Rummer 11 Dec 27, 2022
python3 scrip for case conversion of source code files writen in fixed form fortran

convert_FORTRAN_case python3 scrip for case conversion of source code files writen in fixed form fortran python3 scrip for case conversion of source c

null 7 Sep 20, 2022
Roman numeral conversion with python

Roman numeral conversion Discipline: Programming Languages Student: Paulo Henrique Diniz de Lima Alencar. Language: Python Description Responsible for

Paulo Alencar 1 Jul 11, 2022
Process RunGap output file of a workout and load data into Apple Numbers Spreadsheet and my website with API calls

BSD 3-Clause License Copyright (c) 2020, Mike Bromberek All rights reserved. ProcessWorkout Exercise data is exported in JSON format to iCloud using

Mike Bromberek 1 Jan 3, 2022
A Python script to parse Fortinet products serial numbers, and detect the associated model and version.

ParseFortinetSerialNumber A Python script to parse Fortinet products serial numbers, and detect the associated model and version. Example $ ./ParseFor

Podalirius 10 Oct 28, 2022
Push a record and you will receive a email when that date

Push a record and you will receive a email when that date

null 5 Nov 28, 2022
Find all solutions to SUBSET-SUM, including negative, positive, and repeating numbers

subsetsum The subsetsum Python module can enumerate all combinations within a list of integers which sums to a specific value. It works for both negat

Trevor Phillips 9 May 27, 2022
Birthday program - A program that lookups a birthday txt file and compares to the current date to check for birthdays

Birthday Program This is a program that lookups a birthday txt file and compares

Daquiver 4 Feb 2, 2022
El_Binario - A converter for Binary, Decimal, Hexadecimal and Octal numbers

El_Binario El_Binario es un conversor de números Binarios, Decimales, Hexadecima

null 2 Jan 28, 2022