This is a Cross-Platform Plot Manager for Chia Plotting that is simple, easy-to-use, and reliable.

Overview

Swar's Chia Plot Manager

A plot manager for Chia plotting: https://www.chia.net/

The view of the manager

Development Version: v0.0.1

This is a cross-platform Chia Plot Manager that will work on the major operating systems. This is not a plotter. The purpose of this library is to manage your plotting and kick off new plots with the settings that you configure. Everyone's system is unique so customization is an important feature that was engraved into this library.

This library is simple, easy-to-use, and reliable to keep the plots generating.

This library has been tested for Windows and Linux.

Features

  • Stagger your plots so that your computer resources can avoid high peaks.
  • Allow for a list of destination directories.
  • Utilize temporary space to its maximum potential by starting a new plot early.
  • Run a maximum number of plots concurrently to avoid bottlenecks or limit resource hogging.
  • More in-depth active plot screen.

Sponsor / Support this Library

This library took a lot of time and effort in order to get it before you today. Consider sponsoring or supporting the library. This is not necessary but more a kind gestures.

Installation

The installation of this library is straightforward. I have attached detailed instructions below that should help you get started.

  1. Download and Install Python 3.7 or higher: https://www.python.org/
  2. git clone this repo or download it.
  3. Open CommandPrompt / PowerShell / Terminal and cd into the main library folder.
    • Example: cd C:\Users\Swar\Documents\Swar-Chia-Plot-Manager
  4. OPTIONAL: Create a virtual environment for Python. This is recommended if you use Python for other things.
    1. Create a new python environment: python -m venv venv
      • The second venv can be renamed to whatever you want. I prefer venv because it's a standard.
    2. Activate the virtual environment. This must be done every single time you open a new window.
      • Example Windows: venv\Scripts\activate
      • Example Linux: . ./venv/bin/activate or source ./venv/bin/activate
    3. Confirm that it has activated by seeing the (venv) prefix. The prefix will change depending on what you named it.
  5. Install the required modules: pip install -r requirements.txt
  6. Copy config.yaml.default and name it as config.yaml in the same directory.
  7. Edit and set up the config.yaml to your own personal settings. There is more help on this below.
    • You will need to add the chia_location as well! This should point to your chia executable.
  8. Run the Manager: python manager.py start
    • This will start a process in the background that will manage plots based on your inputted settings.
  9. Run the View: python manager.py view
  • This will loop through a view screen with details about active plots.

Configuration

The configuration of this library is unique to every end-user. The config.yaml file is where the configuration will live.

This plot manager works based on the idea of jobs. Each job will have its own settings that you can configure and customize. No two drives are unique so this will provide flexibility for your own constraints and requirements.

chia_location

This is a single variable that should contain the location of your chia executable file. This is the blockchain executable.

  • Windows Example: C:\Users\<USERNAME>\AppData\Local\chia-blockchain\app-1.1.2\resources\app.asar.unpacked\daemon\chia.exe
  • Linux Example: /usr/lib/chia-blockchain/resources/app.asar.unpacked/daemon/chia
  • Another Linux Example: /home/swar/chia-blockchain/venv/bin/chia

manager

These are the config settings that will only be used by the plot manager.

  • check_interval - The number of seconds to wait before checking to see if a new job should start.
  • log_level - Keep this on ERROR to only record when there are errors. Change this to INFO in order to see more detailed logging. Warning: INFO will write a lot of information.

log

  • folder_path - This is the folder where your log files for plots will be saved.

view

These are the settings that will be used by the view.

  • check_interval - The number of seconds to wait before updating the view.
  • datetime_format - The datetime format that you want displayed in the view. See here for formatting: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes
  • include_seconds_for_phase - This dictates whether seconds are included in the phase times.
  • include_drive_info - This dictates whether the drive information will be showed.
  • include_cpu - This dictates whether the CPU information will be showed.
  • include_ram - This dictates whether the RAM information will be showed.
  • include_plot_stats - This dictates whether the plot stats will be showed.

notifications

These are different settings in order to send notifications when the plot manager starts and when a plot has been completed.

progress

  • phase_line_end - These are the settings that will be used to dictate when a phase ends in the progress bar. It is supposed to reflect the line at which the phase will end so the progress calculations can use that information with the existing log file to calculate a progress percent.
  • phase_weight - These are the weight to assign to each phase in the progress calculations. Typically, Phase 1 and 3 are the longest phases so they will hold more weight than the others.

global

  • max_concurrent - The maximum number of plots that your system can run. The manager will not kick off more than this number of plots total over time.

job

These are the settings that will be used by each job. Please note you can have multiple jobs and each job should be in YAML format in order for it to be interpreted correctly. Almost all the values here will be passed into the Chia executable file.

Check for more tails on the Chia CLI here: https://github.com/Chia-Network/chia-blockchain/wiki/CLI-Commands-Reference

  • name - This is the name that you want to give to the job.
  • max_plots - This is the maximum number of jobs to make in one run of the manager. Any restarts to manager will reset this variable. It is only here to help with short term plotting.
  • [OPTIONAL]farmer_public_key - Your farmer public key. If none is provided, it will not pass in this variable to the chia executable which results in your default keys being used. This is only needed if you have chia set up on a machine that does not have your credentials.
  • [OPTIONAL]pool_public_key - Your pool public key. Same information as the above.
  • temporary_directory - Only a single directory should be passed into here. This is where the plotting will take place.
  • [OPTIONAL]temporary2_directory - Can be a single value or a list of values. This is an optional parameter to use in case you want to use the temporary2 directory functionality of Chia plotting.
  • destination_directory - Can be a single value or a list of values. This is the final directory where the plot will be transferred once it is completed. If you provide a list, it will cycle through each drive one by one.
  • size - This refers to the k size of the plot. You would type in something like 32, 33, 34, 35... in here.
  • bitfield - This refers to whether you want to use bitfield or not in your plotting. Typically, you want to keep this as true.
  • threads - This is the number of threads that will be assigned to the plotter. Only phase 1 uses more than 1 thread.
  • buckets - The number of buckets to use. The default provided by Chia is 128.
  • memory_buffer - The amount of memory you want to allocate to the process.
  • max_concurrent - The maximum number of plots to have for this job at any given time.
  • max_concurrent_with_start_early - The maximum number of plots to have for this job at any given time including phases that started early.
  • stagger_minutes - The amount of minutes to wait before the next job can get kicked off. You can even set this to zero if you want your plots to get kicked off immediately when the concurrent limits allow for it.
  • max_for_phase_1 - The maximum number of plots on phase 1 for this job.
  • concurrency_start_early_phase - The phase in which you want to start a plot early. It is recommended to use 4 for this field.
  • concurrency_start_early_phase_delay - The maximum number of seconds to wait before a new plot gets kicked off when the start early phase has been detected.
  • temporary2_destination_sync - This field will always submit the destination directory as the temporary2 directory. These two directories will be in sync so that they will always be submitted as the same value.
Issues
  • Feature: Madmax

    Feature: Madmax

    This PR adds madmax support to the plot manager. It creates a new key in the config called backend. There you can define which plotter backend you want to use (it defaults to chia).

    If the madmax backend is provided, it parses all required logs, binaries and others according to madmax structure.

    How to use it

    After cloning my branch, install the plot manager as you're used to, and change the config file by adding the following:

    chia_location: <path-to-your-madmax-compiled-binary>
    backend: madmax
    
    progress:
      phase1_line_end: 20
      phase2_line_end: 34
      phase3_line_end: 48
      phase4_line_end: 53
    

    I've also added the progress config in the config.yaml.default file.

    IMPORTANT

    While using madmax backend, your tmp, tmp2 and final dir configs must end with a trailing slash (/ for Linux and \ for Windows)

    After that, just launch the manager as you're used to.

    Also , Swar's plot manager fetches the running plots by the process name. Because of that, your executable file must be named chia_plot (chia_plot.exe in Windows)

    opened by delucca 120
  • What did I wrong?

    What did I wrong?

    When I start view in powershell I get this error:

    PS C:\Swar-Chia-Plot-Manager> python manager.py view python : Traceback (most recent call last): In Zeile:1 Zeichen:1

    • python manager.py view
    •   + CategoryInfo          : NotSpecified: (Traceback (most recent call last)::String) [], RemoteException
        + FullyQualifiedErrorId : NativeCommandError
      
      File "C:\Swar-Chia-Plot-Manager\manager.py", line 36, in <module>
        view()
      File "C:\Swar-Chia-Plot-Manager\plotmanager\library\utilities\commands.py", line 80, in view
        drive = job.temporary_directory.split('\\')[0]
      

    AttributeError: 'NoneType' object has no attribute 'split'

    Here is my "config.yaml" >> config.txt

    OS: Windows 10 Pro CPU: AMD Ryzen x5950 RAM: Patriot Viper 32GB 3600 MHz Motherboard: ASUS Prime x570 Pro OS SSD: Seagate FireCuda 520, NVMe PCIe X4, 500 GB SSD: 3,84TB 2,5 Micron 5300 PRO Enterprise Plot final directory is on my WD Book external HDD

    I really don't know what I should do. I lost my plots with the chia GUI because of wrong settings twice now. I really need help please.

    opened by gntz555 42
  • viewer crashing

    viewer crashing

    I installed everything on an ubuntu server 20.04, but when I start the manager viewer (python manager.py view) after 2 refreshes it crashes with this error. If I put the refresh time for 60sec, i will refresh once, but the second time it stops. Same for any refresh value.

    Restarting view due to psutil going stale... Traceback (most recent call last): File "manager.py", line 36, in view() File "/chia/chia-manager/Swar-Chia-Plot-Manager/plotmanager/library/utilities/commands.py", line 123, in view os.execv(sys.executable, system_args) FileNotFoundError: [Errno 2] No such file or directory

    opened by cryptors 19
  • Viwer don't work due to psutil stale

    Viwer don't work due to psutil stale

    Hello,

    Manager and viewer are working since 2-3 days, but now the viewer have a problem. The manager still working: image

    opened by Twanaar 18
  • Not seeing plot complete notifications  [notify_discord]

    Not seeing plot complete notifications [notify_discord]

    notify_discord will successfully send an initial 'Plot Manager has started on....' message when the plot manager is started. However, no further notifications will occur. Plots are completing but I'm not getting any further subsequent messages for plot completion.

    opened by modsoft 15
  • chinese translation

    chinese translation

    opened by pkwenda 15
  • Skip_full_destinations: True - erros when they are network drives

    Skip_full_destinations: True - erros when they are network drives

    I downloaded the latest version (v0.1.0b) tonight and had a few errors, some of my own making. But Skip_full_destinations: True fails (stops the manager starting) when specified in the UNC format such as \\server\Completed plots 1

    I believe it fails because it can't get the size/free space on the drive. Perhaps it will work if I map the drive to a drive letter, but I thought I read someone had issues with mapped drives???

    From the CMD window:

    (venv) C:\Users\ChiaMining\Swar-Chia-Plot-Manager-main>python manager.py start Traceback (most recent call last): File "C:\Users\ChiaMining\Swar-Chia-Plot-Manager-main\manager.py", line 30, in start_manager() File "C:\Users\ChiaMining\Swar-Chia-Plot-Manager-main\plotmanager\library\utilities\commands.py", line 55, in start_manager raise ManagerError('Failed to start Manager. Please look at debug.log for more details on the error. It is in the same folder as manager.py.') plotmanager.library.utilities.exceptions.ManagerError: Failed to start Manager. Please look at debug.log for more details on the error. It is in the same folder as manager.py.

    Setting Skip_full_destinations: False solved the problem, but it would have been a nice feature to have.

    debug.log

    opened by Ron-ski 15
  • Failed to start the manager - Failed to get disk_usage of drive None

    Failed to start the manager - Failed to get disk_usage of drive None

    Hi,

    I have a problem with starting the manager v0.1.0 (debug.log below). Worked fine in previous version.

    2021-05-20 13:59:44 [ERROR]: Failed to get disk_usage of drive None. Traceback (most recent call last): File "C:\Chia\scripts\Swar-Chia-Plot-Manager-main\plotmanager\library\utilities\jobs.py", line 173, in monitor_jobs_to_start free_space = psutil.disk_usage(drive).free File "C:\Users\Użytkownik\AppData\Local\Programs\Python\Python39\lib\site-packages\psutil_init_.py", line 1995, in disk_usage return _psplatform.disk_usage(path) File "C:\Users\Użytkownik\AppData\Local\Programs\Python\Python39\lib\site-packages\psutil_pswindows.py", line 265, in disk_usage total, free = cext.disk_usage(path) TypeError: argument 1 must be str, not None Traceback (most recent call last): File "C:\Chia\scripts\Swar-Chia-Plot-Manager-main\stateless-manager.py", line 94, in jobs, running_work, next_job_work, next_log_check = monitor_jobs_to_start( File "C:\Chia\scripts\Swar-Chia-Plot-Manager-main\plotmanager\library\utilities\jobs.py", line 258, in monitor_jobs_to_start job, work = start_work( File "C:\Chia\scripts\Swar-Chia-Plot-Manager-main\plotmanager\library\utilities\jobs.py", line 284, in start_work get_target_directories(job, drives_free_space=drives_free_space) File "C:\Chia\scripts\Swar-Chia-Plot-Manager-main\plotmanager\library\utilities\jobs.py", line 26, in get_target_directories job = check_valid_destinations(job, drives_free_space) File "C:\Chia\scripts\Swar-Chia-Plot-Manager-main\plotmanager\library\utilities\jobs.py", line 53, in check_valid_destinations drive = identify_drive(file_path=directory, drives=drives) File "C:\Chia\scripts\Swar-Chia-Plot-Manager-main\plotmanager\library\utilities\processes.py", line 136, in identify_drive if drive not in file_path: TypeError: 'in ' requires string as left operand, not NoneType

    opened by kaktus79 14
  • Cant seem to get jobs to start

    Cant seem to get jobs to start

    not sure what Im doing wrong, Ive got the manager running and it shows jobs I start through the GUI but the manager doesnt seem to be starting new jobs.

    • name: M2-1 max_plots: 999 farmer_public_key: ..... pool_public_key: temporary_directory: A:
      temporary2_directory: destination_directory: D:\Plots size: 32 bitfield: true threads: 30 buckets: 128 memory_buffer: 5000 max_concurrent: 3 max_concurrent_with_start_early: 6 stagger_minutes: 5 max_for_phase_1: 3 concurrency_start_early_phase: 4 concurrency_start_early_phase_delay: 0 temporary2_destination_sync: false

    Tried letting it run twice so far with no results.

    opened by WernerVoss 14
  • Start error

    Start error

    PS D:\Swar-Chia-Plot-Manager-main> python .\manager.py start Traceback (most recent call last): File "D:\Swar-Chia-Plot-Manager-main\manager.py", line 29, in start_manager() File "D:\Swar-Chia-Plot-Manager-main\plotmanager\library\utilities\commands.py", line 32, in start_manager notification_settings, debug_level, view_settings = get_config_info() File "D:\Swar-Chia-Plot-Manager-main\plotmanager\library\parse\configuration.py", line 102, in get_config_info config = _get_config() File "D:\Swar-Chia-Plot-Manager-main\plotmanager\library\parse\configuration.py", line 16, in get_config config = yaml.load(stream=f, Loader=yaml.Loader) File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml_init.py", line 114, in load return loader.get_single_data() File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml\constructor.py", line 49, in get_single_data node = self.get_single_node() File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml\composer.py", line 36, in get_single_node document = self.compose_document() File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml\composer.py", line 58, in compose_document self.get_event() File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml\parser.py", line 118, in get_event self.current_event = self.state() File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml\parser.py", line 193, in parse_document_end token = self.peek_token() File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml\scanner.py", line 129, in peek_token self.fetch_more_tokens() File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml\scanner.py", line 223, in fetch_more_tokens return self.fetch_value() File "C:\Users\ShopComputer\AppData\Local\Programs\Python\Python39\lib\site-packages\yaml\scanner.py", line 577, in fetch_value raise ScannerError(None, None, yaml.scanner.ScannerError: mapping values are not allowed here in "D:\Swar-Chia-Plot-Manager-main\config.yaml", line 9, column 8

    Thanks

    opened by lakymoon 14
  • When running K34, viewer still shows K32

    When running K34, viewer still shows K32

    Newest version of MadMax now includes support for K33 & K34. When running K34, viewer still shows K32. Seems to be just a display error. Progress and phase detection does not seem to be correct either.

    opened by CryptoBlockchainTechnologies 0
  • Plots not distributing evenly to destination drives

    Plots not distributing evenly to destination drives

    Hello, I am running Swar with MadMax with 60 destination hard drives while plotting 60 concurrent plots. I want one plot to go to one destination drive, so that multiple plots don't queue up on a single destination.

    Sometimes the plots assign themselves to different drives, but most of the time all the plots are assigned to only 1 hard drive. How do I make it so Swar divides up the plots evenly amongst the destinations?

    Thanks.

    opened by mkirshner 0
  • Manager gets stuck on last couple files for full drives

    Manager gets stuck on last couple files for full drives

    I am running on Windows, using 14TB drives. When I get within 1TB of a drive being full, I add a new drive, add to config.yaml, and restart the manager. The manager correctly sees the new drive and starts assigning plots to it. The problem is that the last two plots that were assigned to the almost full drive can't fit on it by the time they are ton, and the manager doesn't know what to do with them. Instead of retargeting them to the new drive and copying there, they just get hung indefinitely. I have to manually kill the last two plots on every drive every time when it fills up. Then I have to manually copy the tmp files to the new drive and rename them.

    It seems like there needs to be better logic to calculate how full drives are going to be based on all of the active jobs, and/or there needs to be a process to retarget plots to a drive with free space if they can't fit on the intended drive. I can provide logs if needed, this is a fully repeatable issue, it occurs every single time.

    opened by cloudrobx 0
  • Support madmax k-size and port

    Support madmax k-size and port

    Added support for changing the k-size of plots and the port. Updated views to reflect this.

    opened by HoorayJorge 1
  • python3 manager.py view crashing

    python3 manager.py view crashing

    Just leaves this message: Segmentation fault (core dumped)

    opened by jonathanhatch 0
  • There seems to be a bug in detecting the zombie process

    There seems to be a bug in detecting the zombie process

    It doesn't happen every time, but it happens every day, causing the main program to exit

    Code file: stateless-manager.py

    Occurrence code line: if psutil.Process(pid).status() != 'zombie':

    Code snippet:

        logging.info(f'Clearing zombies')
    
        for job in jobs:
            non_zombie_work = []
            for pid in job.running_work:
                if psutil.Process(pid).status() != 'zombie':
                    non_zombie_work.append(pid)
                else:
                    del running_work[pid]
                    job.total_running = job.total_running - 1
    
            job.running_work = non_zombie_work
    

    Debug file:

     Traceback (most recent call last):
      File "C:\Program Files\Python37\lib\site-packages\psutil\_pswindows.py", line 679, in wrapper
        return fun(self, *args, **kwargs)
      File "C:\Program Files\Python37\lib\site-packages\psutil\_pswindows.py", line 1054, in status
        suspended = cext.proc_is_suspended(self.pid)
    ProcessLookupError: [Errno 3] assume no such process (originated from NtQuerySystemInformation (no PID found))
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:\auto-chia\Swar-Chia-Plot-Manager-main\stateless-manager.py", line 99, in <module>
        if psutil.Process(pid).status() != 'zombie':
      File "C:\Program Files\Python37\lib\site-packages\psutil\__init__.py", line 682, in status
        return self._proc.status()
      File "C:\Program Files\Python37\lib\site-packages\psutil\_pswindows.py", line 681, in wrapper
        raise convert_oserror(err, pid=self.pid, name=self._name)
    psutil.NoSuchProcess: psutil.NoSuchProcess process no longer exists (pid=12184)
    
    opened by fanisky 1
  • Swar viewer keeps freezing very buggy

    Swar viewer keeps freezing very buggy

    This happens randomly on both my machines. The manager will become frozen and randomly stop plotting, or sometimes the viewer will not open and freeze like the screenshot below. Discord notifications for when plots are created do not work, but they work when the plotter comes online. Very buggy!

    image

    opened by funnycubeguy 0
  • Swar keeps plotting even when destination is full (when using parallel jobs). Fix in description

    Swar keeps plotting even when destination is full (when using parallel jobs). Fix in description

    Hello, when using parallel plotting Swar will initiate jobs even when the destination disk will be full because of a job that started earlier. It's easier to understand with an example:

    There is a job called "JOB_A", it has 1 drive as destination drive, max_concurrent = 2, max_for_phase1 = 1):

    1. Destination disk is 5.45 tib full of 5.6 tib. It has space for 1 more plot
    2. There is 1 JOB_A active right now (max_concurrent = 2, max concurrent on phase 1 = 1)
    3. As soon as the job finishes phase 1 it will start another JOB_A (because of max_concurrent = 2).
    4. Now there are 2 JOB_A plotting to destination disk, only the first one will be able to copy the finished plot.

    How to fix it? (I can't provide code right now because I don't have time but should be easy to implement) Using the same example as before: (This is pseudo-code)

    With: plot_size = 101.4 gib destination_hdd is 5.45 tib full of 5.6 tib space (153.6 gib remaining) Just like in the example there is 1 active JOB_A for this destination drive

    So now the 1st JOB_A has reached phase 2 and the plot manager is checking if it can start another job:

    disk_remaining_space = getDiskSpace(destination_hdd) 
      // disk_remaining_space = 153.6 gib
    
    active_jobs = getActiveJobs(destination_hdd) 
      // active_jobs = 1
    
    active_jobs_size = active_jobs * plot_size
      // active_jobs_size = 101.4 gib
    
    remaining_plots_hdd_can_hold = calculateRemainingPlotSpace(plot_size, disk_remaining_space - active_jobs_size) 
      // remaining_plots_hdd_can_hold = 0 (because disk_remaining_space - active_jobs_size = 52.2 gib)
      
    if (remaining_plots_hdd_can_hold > 0)
        start_job(config)
    else
        disk_is_full(destination_hdd)
    
    opened by Leemonn 0
  • pool_contract_address disappeared from config.yaml.default example

    pool_contract_address disappeared from config.yaml.default example

    The pool contract address is still in the job description comment. However it vanished from the job examples (at least I believe I saw it in the example already). If I add the parameter to the job in my configuration it works as expected. Please add the parameter to the examples (again)

    opened by Chilli71 0
  • unknown plots being created

    unknown plots being created

    Trying to find out why I am having plots show up in my temp drives that I am not creating. It's filling up my temp drives and not allowing my plots to finish. I have to delete all the temp plot data to get my actual plots to finish.

    opened by jrnichols1974 0
Releases(v.0.1.0)
  • v.0.1.0(May 20, 2021)

    v.0.1.0

    The first feature packed improvement of the plot manager.

    New Features

    • Adding exclude_final_directory as an option in the config.yaml. (#35)
    • Skipping manager.log as a file and renaming to debug.log. (#38)
    • Added destination directory skipping when a drive is full using skip_full_destinations at the job level. It will calculate size of total running plots and the predicted size of the new plot prior to making that judgement. (#36, #193)
    • Added global setting for max_for_phase_1.
    • Added global setting for minimum_minutes_between_jobs. (#380, #468)
    • Added list support for temporary directories. This will cycle through all temporary directories in the order that they are listed for a job. (#150, #153, #182)
    • Added CPU affinity support on the job level. This allows you to select and dedicate specific threads to your jobs. (#134, #281)
    • Added process priority levels on the job level. This allows you to set the priority levels to whatever you choose. Some people want low priority, while others want higher priorities. (#282)
    • Added an option to delay a job by a set number of minutes. If you started manager and there is a stagger for the job, it will use the initial delay only if it is longer than the stagger. (#283)
    • Added an option in manager.py to spit out a single instance of the view using the status argument as well as json format of the jobs. (#300, #374)
    • Added support for Telegram notifications. (#316, #364)
    • Added support for IFTTT webhooks. (#425, #471)
    • Added support for instrumentation using Prometheus (#87, #196)

    Changes

    • Switching notification imports to a separate requirements file and turning them into lazy imports. (#159, 196)
    • Reworked the Drives Table in the view to include associated jobs. This includes minor tweaks to the display to remove ambiguity such as renaming plots to "#". (#191, #368, #406)
    • Adding basic checks that will break and have more detailed error messaging to assist in end-user interaction. Also, I was tired of getting the same repeat questions over and over again.
    • Adding more psutil error handling.
    • Jobs are now unique based on temporary directories.

    Bug Fixes

    • Fixed a bug where max_plots was not working properly. It was counting running plots when you restarted manager. Now it will only count new plots kicked off.
    • Fixed a bug in elapsed_time column where elapsed days greater than 24 hours were resulting in calculations being off by a day. (#190)
    • Skipping processes that result in an AccessDenied error when finding manager processes. (#147)
    • Fixed a bug where psutil going stale on Linux users was not allowing the script to restart on its own. (#197)
    • Fixed a bug where NFS drives weren't being identified. (#284)
    • Removed the hardcoded next log check date in the view.
    • Fixed a bug where NoSuchProcess error pops up when viewing opened files.
    Source code(tar.gz)
    Source code(zip)
  • v.0.0.1(May 13, 2021)

  • v0.0.0b(Apr 29, 2021)

Owner
Swar Patel
/in/swar
Swar Patel
Bokeh Plotting Backend for Pandas and GeoPandas

Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of

Patrik Hlobil 717 Oct 13, 2021
Bokeh Plotting Backend for Pandas and GeoPandas

Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of

Patrik Hlobil 614 Feb 17, 2021
Plot, scatter plots and histograms in the terminal using braille dots

Plot, scatter plots and histograms in the terminal using braille dots, with (almost) no dependancies. Plot with color or make complex figures - similar to a very small sibling to matplotlib. Or use the canvas to plot dots and lines yourself.

Tammo Ippen 128 Oct 21, 2021
Handout for the tutorial "Creating publication-quality figures with matplotlib"

Handout for the tutorial "Creating publication-quality figures with matplotlib"

JB Mouret 1.7k Oct 20, 2021
An intuitive library to add plotting functionality to scikit-learn objects.

Welcome to Scikit-plot Single line functions for detailed visualizations The quickest and easiest way to go from analysis... ...to this. Scikit-plot i

Reiichiro Nakano 2.1k Oct 21, 2021
An open-source plotting library for statistical data.

Lets-Plot Lets-Plot is an open-source plotting library for statistical data. It is implemented using the Kotlin programming language. The design of Le

JetBrains 696 Oct 26, 2021
An open-source plotting library for statistical data.

Lets-Plot Lets-Plot is an open-source plotting library for statistical data. It is implemented using the Kotlin programming language. The design of Le

JetBrains 509 Feb 17, 2021
Matplotlib tutorial for beginner

matplotlib is probably the single most used Python package for 2D-graphics. It provides both a very quick way to visualize data from Python and publication-quality figures in many formats. We are going to explore matplotlib in interactive mode covering most common cases.

Nicolas P. Rougier 2.1k Oct 15, 2021
Attractors is a package for simulation and visualization of strange attractors.

attractors Attractors is a package for simulation and visualization of strange attractors. Installation The simplest way to install the module is via

Vignesh M 35 Sep 15, 2021
A curated list of awesome Dash (plotly) resources

Awesome Dash A curated list of awesome Dash (plotly) resources Dash is a productive Python framework for building web applications. Written on top of

Luke Singham 1.3k Oct 22, 2021
Uniform Manifold Approximation and Projection

UMAP Uniform Manifold Approximation and Projection (UMAP) is a dimension reduction technique that can be used for visualisation similarly to t-SNE, bu

Leland McInnes 5.1k Oct 23, 2021
Uniform Manifold Approximation and Projection

UMAP Uniform Manifold Approximation and Projection (UMAP) is a dimension reduction technique that can be used for visualisation similarly to t-SNE, bu

Leland McInnes 4.5k Feb 18, 2021
:small_red_triangle: Ternary plotting library for python with matplotlib

python-ternary This is a plotting library for use with matplotlib to make ternary plots plots in the two dimensional simplex projected onto a two dime

Marc 476 Oct 23, 2021
:small_red_triangle: Ternary plotting library for python with matplotlib

python-ternary This is a plotting library for use with matplotlib to make ternary plots plots in the two dimensional simplex projected onto a two dime

Marc 391 Feb 17, 2021
A minimal Python package that produces slice plots through h5m DAGMC geometry files

A minimal Python package that produces slice plots through h5m DAGMC geometry files Installation pip install dagmc_geometry_slice_plotter Python API U

Fusion Energy 1 Oct 22, 2021
3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)

PyVista Deployment Build Status Metrics Citation License Community 3D plotting and mesh analysis through a streamlined interface for the Visualization

PyVista 966 Oct 24, 2021
3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)

PyVista Deployment Build Status Metrics Citation License Community 3D plotting and mesh analysis through a streamlined interface for the Visualization

PyVista 692 Feb 18, 2021
Interactive Data Visualization in the browser, from Python

Bokeh is an interactive visualization library for modern web browsers. It provides elegant, concise construction of versatile graphics, and affords hi

Bokeh 15.6k Oct 23, 2021
Interactive Data Visualization in the browser, from Python

Bokeh is an interactive visualization library for modern web browsers. It provides elegant, concise construction of versatile graphics, and affords hi

Bokeh 14.7k Feb 13, 2021