sushi-sub-next 0.6.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sushi_sub_next-0.6.3/LICENSE +23 -0
- sushi_sub_next-0.6.3/PKG-INFO +127 -0
- sushi_sub_next-0.6.3/README.md +102 -0
- sushi_sub_next-0.6.3/licenses/OpenCV.txt +33 -0
- sushi_sub_next-0.6.3/licenses/SciPy.txt +31 -0
- sushi_sub_next-0.6.3/pyproject.toml +31 -0
- sushi_sub_next-0.6.3/sushi/__init__.py +681 -0
- sushi_sub_next-0.6.3/sushi/__main__.py +154 -0
- sushi_sub_next-0.6.3/sushi/chapters.py +37 -0
- sushi_sub_next-0.6.3/sushi/common.py +42 -0
- sushi_sub_next-0.6.3/sushi/demux.py +358 -0
- sushi_sub_next-0.6.3/sushi/keyframes.py +16 -0
- sushi_sub_next-0.6.3/sushi/regression-tests.py +214 -0
- sushi_sub_next-0.6.3/sushi/subs.py +271 -0
- sushi_sub_next-0.6.3/sushi/wav.py +131 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Copyright (c) 2014-2017 Victor Efimov
|
|
2
|
+
Copyright (c) 2025 C1fer
|
|
3
|
+
|
|
4
|
+
Permission is hereby granted, free of charge, to any person
|
|
5
|
+
obtaining a copy of this software and associated documentation
|
|
6
|
+
files (the "Software"), to deal in the Software without
|
|
7
|
+
restriction, including without limitation the rights to use,
|
|
8
|
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the
|
|
10
|
+
Software is furnished to do so, subject to the following
|
|
11
|
+
conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
18
|
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
20
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
21
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
22
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
23
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sushi-sub-next
|
|
3
|
+
Version: 0.6.3
|
|
4
|
+
Summary: Subtitle Synchronization Tool
|
|
5
|
+
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
License-File: LICENSES/OpenCV.txt
|
|
8
|
+
License-File: LICENSES/SciPy.txt
|
|
9
|
+
Keywords: subtitle,sync
|
|
10
|
+
Author: C1fer
|
|
11
|
+
Requires-Python: >=3.13
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Topic :: Multimedia :: Sound/Audio
|
|
18
|
+
Classifier: Topic :: Text Processing
|
|
19
|
+
Requires-Dist: numpy (>=2.3.4,<3.0.0)
|
|
20
|
+
Requires-Dist: opencv-python (>=4.8.1.78,<5.0.0.0)
|
|
21
|
+
Requires-Dist: scipy (>=1.16.2,<2.0.0)
|
|
22
|
+
Project-URL: Repository, https://github.com/C1fer/sushi-next
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
|
|
25
|
+
## Sushi-next
|
|
26
|
+
Automatic shifter for SRT and ASS subtitle based on audio streams.
|
|
27
|
+
|
|
28
|
+
*Python 3.13 fork of https://github.com/tp7/Sushi.*
|
|
29
|
+
|
|
30
|
+
Credits to [DYY-Studio](https://github.com/DYY-Studio/Sushi) for the initial v3.13 porting work.
|
|
31
|
+
|
|
32
|
+
### Purpose
|
|
33
|
+
Imagine you've got a subtitle file synced to one video file, but you want to use these subtitles with some other video you've got via totally legal means. The common example is TV vs. BD releases, PAL vs. NTSC video and releases in different countries. In a lot of cases, subtitles won't match right away and you need to sync them.
|
|
34
|
+
|
|
35
|
+
The purpose of this script is to avoid all the hassle of manual syncing. It attempts to synchronize subtitles by finding similarities in audio streams. The script is very fast and can be used right when you want to watch something.
|
|
36
|
+
|
|
37
|
+
### How it works
|
|
38
|
+
You need to provide two audio files and a subtitle file that matches one of those files. For every line of the subtitles, the script will extract corresponding audio from the source audio stream and will try to find the closest similar pattern in the destination audio stream, obtaining a shift value which is later applied to the subtitles.
|
|
39
|
+
|
|
40
|
+
Detailed explanation of Sushi workflow and description of command-line arguments can be found in the [wiki][2].
|
|
41
|
+
|
|
42
|
+
### Usage
|
|
43
|
+
The minimal command line looks like this:
|
|
44
|
+
```
|
|
45
|
+
python -m sushi --src hdtv.wav --dst bluray.wav --script subs.ass
|
|
46
|
+
```
|
|
47
|
+
Output file name is optional - `"{destination_path}.sushi.{subtitles_format}"` is used by default. See the [usage][3] page of the wiki for further examples.
|
|
48
|
+
|
|
49
|
+
Do note that WAV is not the only format Sushi can work with. It can process audio/video files directly and decode various audio formats, provided that ffmpeg is available. For additional info refer to the [Demuxing][4] part of the wiki.
|
|
50
|
+
|
|
51
|
+
### Requirements
|
|
52
|
+
Sushi should work on Windows, Linux and OS X. Please open an issue if it doesn't. To run it, you have to have the following installed:
|
|
53
|
+
|
|
54
|
+
1. [Python 3.13 or higher][5]
|
|
55
|
+
2. [NumPy][6] (2.3.4 or newer)
|
|
56
|
+
3. [SciPy][6] (1.16.2 or newer)
|
|
57
|
+
4. [OpenCV 4.4.x or newer][7]
|
|
58
|
+
|
|
59
|
+
Optionally, you might want:
|
|
60
|
+
|
|
61
|
+
1. [FFmpeg][9] for any kind of demuxing
|
|
62
|
+
2. [MkvExtract][10] for faster timecodes extraction when demuxing
|
|
63
|
+
3. [SCXvid-standalone][11] if you want Sushi to make keyframes
|
|
64
|
+
4. [Colorama](https://github.com/tartley/colorama) to add colors to console output on Windows
|
|
65
|
+
|
|
66
|
+
#### Installation on Windows
|
|
67
|
+
<!-- The provided Windows binaries include all required components and Colorama so you don't have to install them if you use the binary distribution. You still have to download other applications yourself if you want to use Sushi's demuxing capabilities. -->
|
|
68
|
+
Because the "maintainer" of this fork does not run Windows and is not interested in providing binaries, you are kind of on your own.
|
|
69
|
+
The following steps are untested (see requirements earlier):
|
|
70
|
+
|
|
71
|
+
1. Install Python (64 bit).
|
|
72
|
+
2. Install OpenCV.
|
|
73
|
+
3. Run `pip install sushi-sub-next colorama` on a terminal.
|
|
74
|
+
4. Use it as `sushi args…` on a terminal.
|
|
75
|
+
|
|
76
|
+
If anyone wants to provide proper installation steps or a binary for Windows, please open a PR or get in contact.
|
|
77
|
+
|
|
78
|
+
#### Installation on Mac OS X
|
|
79
|
+
|
|
80
|
+
No binary packages are provided for OS X right now so you'll have to use the script form. Assuming you have Python 3, pip and [homebrew](http://brew.sh/) installed, run the following:
|
|
81
|
+
```bash
|
|
82
|
+
brew tap homebrew/science
|
|
83
|
+
brew install git opencv
|
|
84
|
+
pip3 install numpy
|
|
85
|
+
# install some optional dependencies
|
|
86
|
+
brew install ffmpeg mkvtoolnix
|
|
87
|
+
# install sushi
|
|
88
|
+
pip3 install sushi-sub-next
|
|
89
|
+
# use sushi
|
|
90
|
+
sushi args…
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### Installation on Linux
|
|
94
|
+
|
|
95
|
+
If you have apt-get available, the installation process is trivial.
|
|
96
|
+
```bash
|
|
97
|
+
sudo apt-get update
|
|
98
|
+
sudo apt-get install git python3 python3-numpy python3-opencv
|
|
99
|
+
|
|
100
|
+
pip3 install --user sushi-sub-next
|
|
101
|
+
# if ~/.local/bin is in your PATH
|
|
102
|
+
sushi args…
|
|
103
|
+
# otherwise
|
|
104
|
+
python3 -m sushi args…
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
For other distros, pick corresponding package names for the python, numpy, and opencv dependencies.
|
|
108
|
+
|
|
109
|
+
### Limitations
|
|
110
|
+
This script will never be able to property handle frame-by-frame typesetting. If underlying video stream changes (e.g. has different telecine pattern), you might get incorrect output.
|
|
111
|
+
|
|
112
|
+
This script cannot improve bad timing. If original lines are mistimed, they will be mistimed in the output file too.
|
|
113
|
+
|
|
114
|
+
In short, while this might be safe for immediate viewing, you probably shouldn't use it to blindly shift subtitles for permanent storing.
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
<!-- [1]: https://github.com/tp7/Sushi/releases -->
|
|
118
|
+
[2]: https://github.com/tp7/Sushi/wiki
|
|
119
|
+
[3]: https://github.com/tp7/Sushi/wiki/Examples
|
|
120
|
+
[4]: https://github.com/tp7/Sushi/wiki/Demuxing
|
|
121
|
+
[5]: https://www.python.org/downloads/
|
|
122
|
+
[6]: http://www.scipy.org/scipylib/download.html
|
|
123
|
+
[7]: http://opencv.org/
|
|
124
|
+
[9]: http://www.ffmpeg.org/download.html
|
|
125
|
+
[10]: http://www.bunkus.org/videotools/mkvtoolnix/downloads.html
|
|
126
|
+
[11]: https://github.com/soyokaze/SCXvid-standalone/releases
|
|
127
|
+
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
## Sushi-next
|
|
2
|
+
Automatic shifter for SRT and ASS subtitle based on audio streams.
|
|
3
|
+
|
|
4
|
+
*Python 3.13 fork of https://github.com/tp7/Sushi.*
|
|
5
|
+
|
|
6
|
+
Credits to [DYY-Studio](https://github.com/DYY-Studio/Sushi) for the initial v3.13 porting work.
|
|
7
|
+
|
|
8
|
+
### Purpose
|
|
9
|
+
Imagine you've got a subtitle file synced to one video file, but you want to use these subtitles with some other video you've got via totally legal means. The common example is TV vs. BD releases, PAL vs. NTSC video and releases in different countries. In a lot of cases, subtitles won't match right away and you need to sync them.
|
|
10
|
+
|
|
11
|
+
The purpose of this script is to avoid all the hassle of manual syncing. It attempts to synchronize subtitles by finding similarities in audio streams. The script is very fast and can be used right when you want to watch something.
|
|
12
|
+
|
|
13
|
+
### How it works
|
|
14
|
+
You need to provide two audio files and a subtitle file that matches one of those files. For every line of the subtitles, the script will extract corresponding audio from the source audio stream and will try to find the closest similar pattern in the destination audio stream, obtaining a shift value which is later applied to the subtitles.
|
|
15
|
+
|
|
16
|
+
Detailed explanation of Sushi workflow and description of command-line arguments can be found in the [wiki][2].
|
|
17
|
+
|
|
18
|
+
### Usage
|
|
19
|
+
The minimal command line looks like this:
|
|
20
|
+
```
|
|
21
|
+
python -m sushi --src hdtv.wav --dst bluray.wav --script subs.ass
|
|
22
|
+
```
|
|
23
|
+
Output file name is optional - `"{destination_path}.sushi.{subtitles_format}"` is used by default. See the [usage][3] page of the wiki for further examples.
|
|
24
|
+
|
|
25
|
+
Do note that WAV is not the only format Sushi can work with. It can process audio/video files directly and decode various audio formats, provided that ffmpeg is available. For additional info refer to the [Demuxing][4] part of the wiki.
|
|
26
|
+
|
|
27
|
+
### Requirements
|
|
28
|
+
Sushi should work on Windows, Linux and OS X. Please open an issue if it doesn't. To run it, you have to have the following installed:
|
|
29
|
+
|
|
30
|
+
1. [Python 3.13 or higher][5]
|
|
31
|
+
2. [NumPy][6] (2.3.4 or newer)
|
|
32
|
+
3. [SciPy][6] (1.16.2 or newer)
|
|
33
|
+
4. [OpenCV 4.4.x or newer][7]
|
|
34
|
+
|
|
35
|
+
Optionally, you might want:
|
|
36
|
+
|
|
37
|
+
1. [FFmpeg][9] for any kind of demuxing
|
|
38
|
+
2. [MkvExtract][10] for faster timecodes extraction when demuxing
|
|
39
|
+
3. [SCXvid-standalone][11] if you want Sushi to make keyframes
|
|
40
|
+
4. [Colorama](https://github.com/tartley/colorama) to add colors to console output on Windows
|
|
41
|
+
|
|
42
|
+
#### Installation on Windows
|
|
43
|
+
<!-- The provided Windows binaries include all required components and Colorama so you don't have to install them if you use the binary distribution. You still have to download other applications yourself if you want to use Sushi's demuxing capabilities. -->
|
|
44
|
+
Because the "maintainer" of this fork does not run Windows and is not interested in providing binaries, you are kind of on your own.
|
|
45
|
+
The following steps are untested (see requirements earlier):
|
|
46
|
+
|
|
47
|
+
1. Install Python (64 bit).
|
|
48
|
+
2. Install OpenCV.
|
|
49
|
+
3. Run `pip install sushi-sub-next colorama` on a terminal.
|
|
50
|
+
4. Use it as `sushi args…` on a terminal.
|
|
51
|
+
|
|
52
|
+
If anyone wants to provide proper installation steps or a binary for Windows, please open a PR or get in contact.
|
|
53
|
+
|
|
54
|
+
#### Installation on Mac OS X
|
|
55
|
+
|
|
56
|
+
No binary packages are provided for OS X right now so you'll have to use the script form. Assuming you have Python 3, pip and [homebrew](http://brew.sh/) installed, run the following:
|
|
57
|
+
```bash
|
|
58
|
+
brew tap homebrew/science
|
|
59
|
+
brew install git opencv
|
|
60
|
+
pip3 install numpy
|
|
61
|
+
# install some optional dependencies
|
|
62
|
+
brew install ffmpeg mkvtoolnix
|
|
63
|
+
# install sushi
|
|
64
|
+
pip3 install sushi-sub-next
|
|
65
|
+
# use sushi
|
|
66
|
+
sushi args…
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### Installation on Linux
|
|
70
|
+
|
|
71
|
+
If you have apt-get available, the installation process is trivial.
|
|
72
|
+
```bash
|
|
73
|
+
sudo apt-get update
|
|
74
|
+
sudo apt-get install git python3 python3-numpy python3-opencv
|
|
75
|
+
|
|
76
|
+
pip3 install --user sushi-sub-next
|
|
77
|
+
# if ~/.local/bin is in your PATH
|
|
78
|
+
sushi args…
|
|
79
|
+
# otherwise
|
|
80
|
+
python3 -m sushi args…
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
For other distros, pick corresponding package names for the python, numpy, and opencv dependencies.
|
|
84
|
+
|
|
85
|
+
### Limitations
|
|
86
|
+
This script will never be able to property handle frame-by-frame typesetting. If underlying video stream changes (e.g. has different telecine pattern), you might get incorrect output.
|
|
87
|
+
|
|
88
|
+
This script cannot improve bad timing. If original lines are mistimed, they will be mistimed in the output file too.
|
|
89
|
+
|
|
90
|
+
In short, while this might be safe for immediate viewing, you probably shouldn't use it to blindly shift subtitles for permanent storing.
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
<!-- [1]: https://github.com/tp7/Sushi/releases -->
|
|
94
|
+
[2]: https://github.com/tp7/Sushi/wiki
|
|
95
|
+
[3]: https://github.com/tp7/Sushi/wiki/Examples
|
|
96
|
+
[4]: https://github.com/tp7/Sushi/wiki/Demuxing
|
|
97
|
+
[5]: https://www.python.org/downloads/
|
|
98
|
+
[6]: http://www.scipy.org/scipylib/download.html
|
|
99
|
+
[7]: http://opencv.org/
|
|
100
|
+
[9]: http://www.ffmpeg.org/download.html
|
|
101
|
+
[10]: http://www.bunkus.org/videotools/mkvtoolnix/downloads.html
|
|
102
|
+
[11]: https://github.com/soyokaze/SCXvid-standalone/releases
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
By downloading, copying, installing or using the software you agree to this license.
|
|
2
|
+
If you do not agree to this license, do not download, install,
|
|
3
|
+
copy or use the software.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
License Agreement
|
|
7
|
+
For Open Source Computer Vision Library
|
|
8
|
+
(3-clause BSD License)
|
|
9
|
+
|
|
10
|
+
Redistribution and use in source and binary forms, with or without modification,
|
|
11
|
+
are permitted provided that the following conditions are met:
|
|
12
|
+
|
|
13
|
+
* Redistributions of source code must retain the above copyright notice,
|
|
14
|
+
this list of conditions and the following disclaimer.
|
|
15
|
+
|
|
16
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
17
|
+
this list of conditions and the following disclaimer in the documentation
|
|
18
|
+
and/or other materials provided with the distribution.
|
|
19
|
+
|
|
20
|
+
* Neither the names of the copyright holders nor the names of the contributors
|
|
21
|
+
may be used to endorse or promote products derived from this software
|
|
22
|
+
without specific prior written permission.
|
|
23
|
+
|
|
24
|
+
This software is provided by the copyright holders and contributors "as is" and
|
|
25
|
+
any express or implied warranties, including, but not limited to, the implied
|
|
26
|
+
warranties of merchantability and fitness for a particular purpose are disclaimed.
|
|
27
|
+
In no event shall copyright holders or contributors be liable for any direct,
|
|
28
|
+
indirect, incidental, special, exemplary, or consequential damages
|
|
29
|
+
(including, but not limited to, procurement of substitute goods or services;
|
|
30
|
+
loss of use, data, or profits; or business interruption) however caused
|
|
31
|
+
and on any theory of liability, whether in contract, strict liability,
|
|
32
|
+
or tort (including negligence or otherwise) arising in any way out of
|
|
33
|
+
the use of this software, even if advised of the possibility of such damage.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Copyright (c) 2001, 2002 Enthought, Inc.
|
|
2
|
+
All rights reserved.
|
|
3
|
+
|
|
4
|
+
Copyright (c) 2003-2012 SciPy Developers.
|
|
5
|
+
All rights reserved.
|
|
6
|
+
|
|
7
|
+
Redistribution and use in source and binary forms, with or without
|
|
8
|
+
modification, are permitted provided that the following conditions are met:
|
|
9
|
+
|
|
10
|
+
a. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
this list of conditions and the following disclaimer.
|
|
12
|
+
b. Redistributions in binary form must reproduce the above copyright
|
|
13
|
+
notice, this list of conditions and the following disclaimer in the
|
|
14
|
+
documentation and/or other materials provided with the distribution.
|
|
15
|
+
c. Neither the name of Enthought nor the names of the SciPy Developers
|
|
16
|
+
may be used to endorse or promote products derived from this software
|
|
17
|
+
without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
23
|
+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
|
|
24
|
+
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
|
25
|
+
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
26
|
+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
27
|
+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
28
|
+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
29
|
+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
30
|
+
THE POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
[tool.poetry]
|
|
2
|
+
name = "sushi-sub-next"
|
|
3
|
+
version = "0.6.3"
|
|
4
|
+
description = "Subtitle Synchronization Tool"
|
|
5
|
+
authors = ["C1fer"]
|
|
6
|
+
license = "MIT"
|
|
7
|
+
readme = "README.md"
|
|
8
|
+
repository = "https://github.com/C1fer/sushi-next"
|
|
9
|
+
keywords = ["subtitle", "sync"]
|
|
10
|
+
classifiers = [
|
|
11
|
+
'Development Status :: 5 - Production/Stable',
|
|
12
|
+
'Programming Language :: Python :: 3.13',
|
|
13
|
+
'Topic :: Multimedia :: Sound/Audio',
|
|
14
|
+
'Topic :: Text Processing',
|
|
15
|
+
]
|
|
16
|
+
packages = [
|
|
17
|
+
{ include = "sushi" }
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[tool.poetry.dependencies]
|
|
21
|
+
python = ">=3.13"
|
|
22
|
+
numpy = "^2.3.4"
|
|
23
|
+
scipy = "^1.16.2"
|
|
24
|
+
opencv-python = "^4.8.1.78"
|
|
25
|
+
|
|
26
|
+
[tool.poetry.scripts]
|
|
27
|
+
sushi = "sushi.__main__:main"
|
|
28
|
+
|
|
29
|
+
[build-system]
|
|
30
|
+
requires = ["poetry-core>=1.0.0"]
|
|
31
|
+
build-backend = "poetry.core.masonry.api"
|