src-d / hercules

Gaining advanced insights from Git repository history.
Other
2.63k stars 334 forks source link

burndown-person fails due to long filename #325

Closed lerra closed 4 years ago

lerra commented 4 years ago

Hi, I am doing the burndown-person but it fails due to to long filename, the filename is really long and bizzar as it finds all combinations of the user and it does it really good but it gets to long.

Any ideá on how I can progress or ignore a specific person?

root@66f4507f00f7:/io# cat combined-burndown | labours -f pb -m burndown-person --background black --start-date 2015-01-01 --size 120,90 --max-people 50 -o people-burndown.png
Reading the input... done
Running: burndown-person
  1%|█▉                                                                                                                                                                  | 11/953 [02:35<3:51:13, 14.73s/it]Traceback (most recent call last):
  File "/usr/local/bin/labours", line 11, in <module>
    load_entry_point('labours==10.5.2', 'console_scripts', 'labours')()
  File "/usr/local/lib/python3.6/dist-packages/labours/cli.py", line 449, in main
    modes[mode]()
  File "/usr/local/lib/python3.6/dist-packages/labours/cli.py", line 227, in people_burndown
    args, "person", full_header, reader.get_people_burndown()
  File "/usr/local/lib/python3.6/dist-packages/labours/modes/burndown.py", line 120, in plot_many_burndown
    args, target, *load_burndown(header, name, matrix, args.resample)
  File "/usr/local/lib/python3.6/dist-packages/labours/modes/burndown.py", line 110, in plot_burndown
    deploy_plot(title, output, args.background)
  File "/usr/local/lib/python3.6/dist-packages/labours/plotting.py", line 68, in deploy_plot
    pyplot.savefig(output, transparent=True)
  File "/usr/local/lib/python3.6/dist-packages/matplotlib/pyplot.py", line 722, in savefig
    res = fig.savefig(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/matplotlib/figure.py", line 2180, in savefig
    self.canvas.print_figure(fname, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/matplotlib/backend_bases.py", line 2082, in print_figure
    **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_agg.py", line 530, in print_png
    cbook.open_file_cm(filename_or_obj, "wb") as fh:
  File "/usr/lib/python3.6/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/usr/local/lib/python3.6/dist-packages/matplotlib/cbook/__init__.py", line 447, in open_file_cm
    fh, opened = to_filehandle(path_or_file, mode, True, encoding)
  File "/usr/local/lib/python3.6/dist-packages/matplotlib/cbook/__init__.py", line 432, in to_filehandle
    fh = open(fname, flag, encoding=encoding)
OSError: [Errno 36] File name too long: 'people-burndown/X.png'
  1%|█▉                                                                                                                                                                  | 11/953 [02:37<3:45:19, 14.35s/it]
vmarkovtsev commented 4 years ago

Let me quickly fix this and release a new package version. I'll add a size limit.

vmarkovtsev commented 4 years ago

@lerra The problem should be fixed in v10.5.3, already in PyPi. Can you please confirm.

lerra commented 4 years ago

@vmarkovtsev thank you, it works like a charm, now I don't need my ugly patch in mathlab lib that I temporary created to get it to work :-)