Releases: AndreVale69/simulator-automatic-warehouse
Releases · AndreVale69/simulator-automatic-warehouse
v1.0.3
v1.0.2
- Bump
pandas
from2.2.2
to2.2.3
- Bump
PyYAML
from6.0.1
to6.0.2
v1.0.1
- Bump
jsonschema
from4.22.0
to4.23.0
v1.0.0
New Features and Improvements
- Random tray generation added to the
Tray
class. It's now possible to generate only one tray. - Improved
get_minimum_offset
method to calculate the minimum offset between columns in the warehouse. - Improved
gen_rand
method in theWarehouse
class. Now it cleanup the warehouse and then generate a bay
(bool parameter), a buffer (bool parameter), and populates the columns. - Improved simulation execution. Moved all simulation methods from
Warehouse
class toSimulation
class.
The list of moved methods is:run_simulation
new_simulation
go_to_bay
go_to_buffer
load_in_carousel
loading_buffer_and_remove
vertical_move
allocate_best_pos
reach_tray_height
unload
load
horiz_move
- Improved the logic of the
Simulation
class.
CreatedSimulation
class as superclass andWarehouseSimulation
as child to have any custom simulation method. - Improved logic of the
simulation_actions
methods. It now takes two parameters:tray
anddestination
. - Created a new module called
Algorithm
where it's possible to insert a new algorithm. - New methods added to the
Column
andCarousel
classes:is_full
andis_empty
. - Moved the
gen_materials_and_trays
static method fromWarehouse
to theColumn
class (for logical reasons). - Moved the
remove_tray
method fromTrayContainer
to theColumn
class. - Added a
min_height
parameter when randomly generating a material in theMaterial
class. - Added a
cleanup
method to cleanup the warehouse. - Added a
get_num_columns
method to get the number of columns in the warehouse. - Added
get_bay_tray
andget_buffer_tray
methods to theCarousel
class (useful methods). - Added
last_position_is_occupied
method to theColumn
class. - Added
cleanup_columns
andcleanup_carousel
methods to theWarehouse
class. - Added
update_config_from_file
andupdate_config
methods to theWarehouseConfigurationSingleton
class
to allow loading a new configuration from the file o from an hardcoded object. - Added
add_materials
andremove_materials
methods to theTray
class. - Added a new exception in
horiz_move
if the offset is not found. - Added a new exception in
load
if the offset is not found. - Added a new exception when a tray is too large to be inserted into a container.
- Added a new exception when a material is too large to be inserted into a tray.
- Added default config path if none is specified (
configuration/sample_config.yaml
). - Added total simulation time.
- Added
length
field in the configuration. - Added
tray
field in the configuration (length
,width
,maximum height
). - Added a configuration validator to check that some properties are respected
(e.g. "the height property of each column can't be greater than the height of the warehouse (height_warehouse)."). - Changed the first trayEntry reference. Now the first trayEntry will be the lower limit.
For example, a tray with three entries; in the container the first trayEntry will be position 2,
and entries 0 and 1 are simple trayEntries. - Changed
Carousel
class signature.
It doesn't accept a dictionary anymore as parameter, but it wants aCarouselConfiguration
class instantiation.
This was done for clarity. - Changed
Column
class signature.
It doesn't accept a dictionary anymore as parameter, but it wants aColumnConfiguration
class instantiation.
This was done for clarity. - Changed
Tray
class signature.
It wants aTrayConfiguration
class instantiation and the list of materials.
This was done for clarity. - Changed
get_height_container
method toget_num_entries
.
The first returns the height of the container (config value)
and the second returns the number of entries in the warehouse. - Changed the
add_column
method. It raises aValueError
if the x-offset of the column is not unique. - Changed
src
folder name inautomatic_warehouse
. - Changed
resources
folder name inautomatic_warehouse-res
. - Changed
configuration
folder name inautomatic_warehouse-config
. Drawer
name changed toTray
.Deposit
name changed toBay
.
Bug Fixes and Enhancements
- Fixed random trays generation in
Tray
class. There were some problems (raiseValueError
) when the
materials_to_insert
parameter was larger than thehow_many
parameter. - Fixed
get_num_entries_free
inColumn
class.
There were some problems because the last position of the warehouse was considered multiple times
(instead of only once). - Fixed
__hash__
inTray
class. It throws an exception because Python can't hash a list. - Fixed
remove_tray
in theCarousel
class.
It returns true if a tray isn't in the carousel.
This fix improves performance because it only checks two items (not the whole container...). - Fixed
is_empty
inColumn
class. It used a wrong height. - Fixed
__hash__
in Entry class. It always returns the same value. - Fixed file not found error if the name of the project's directory was different from
simulator-automatic-warehouse
. - Improved readability
calculate_max_height
method of theTray
class. - Improved readability
__eq__
method forMaterial
class. - Improved readability and naming of the methods used to decide where to insert a tray.
- Improved readability and speed of the
_high_position_algorithm
. - Improved readability of the
gen_rand
method in theWarehouse
class. - Improved readability between simulation class methods.
- Improved logic for abstract methods. They now throw a
NotImplementedError
. - Added different prime number in hash method for each class.
- Added new
__eq__
methods. - Added new
__hash__
methods. - Changed name of
get_max_num_space
method (Tray
class) toget_num_space_occupied
. - Changed name of
get_height_col
method (TrayContainer
class) toget_height_container
.
Other
- Refactoring comments, change comment style.
- Added tests.
v0.0.1-bachelors-degree-thesis
This is an alpha version of the project. It is only made to see how the project was at the start. It corresponds to my bachelor thesis in computer science at the University of Verona.
This version should be stable, but it doesn't have any tests (next improvement)! So for now it is not very reliable.
What's Changed
- Start pull request, add only some inputs by @AndreVale69 in #1
- Andre branch by @AndreVale69 in #2
- Add some useful functions by @AndreVale69 in #3
- Modify logic of input, save data of drawers by @AndreVale69 in #4
- Clean main code and add enter data right column by @AndreVale69 in #5
- Andre branch by @AndreVale69 in #6
- Fix height calculate problems by @AndreVale69 in #7
- Andre branch by @AndreVale69 in #8
- Andre branch by @AndreVale69 in #9
- adding classes by refactoring by @AndreVale69 in #10
- Andre branch by @AndreVale69 in #11
- Andre branch by @AndreVale69 in #12
- Andre branch by @AndreVale69 in #13
- Andre branch by @AndreVale69 in #14
- Andre branch by @AndreVale69 in #15
- Andre branch by @AndreVale69 in #16
- Andre branch by @AndreVale69 in #17
- Andre branch by @AndreVale69 in #18
- Update from last meeting by @AndreVale69 in #19
- Merge pull request #19 from AndreVale69/main by @AndreVale69 in #20
- Andre branch by @AndreVale69 in #21
- meeting merge 05/12/2022 by @AndreVale69 in #22
- Andre branch by @AndreVale69 in #23
- meeting 22/12/2022 by @AndreVale69 in #24
- Andre branch by @AndreVale69 in #25
- Andre branch by @AndreVale69 in #26
- Andre branch by @AndreVale69 in #27
- Andre branch by @AndreVale69 in #28
New Contributors
- @AndreVale69 made their first contribution in #1
Full Changelog: https://github.com/AndreVale69/simulator-automatic-warehouse/commits/v0.0.1-bachelors-degree-thesis