Rage drop the limit size unit enum
							parent
							
								
									febb9310e8
								
							
						
					
					
						commit
						a6629520b1
					
				| 
						 | 
					@ -87,13 +87,21 @@ class Allocator(BaseModel):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    symbol: Symbol
 | 
					    symbol: Symbol
 | 
				
			||||||
    account: Optional[str] = 'paper'
 | 
					    account: Optional[str] = 'paper'
 | 
				
			||||||
    size_unit: SizeUnit = 'currency'
 | 
					    # TODO: for enums this clearly doesn't fucking work, you can't set
 | 
				
			||||||
 | 
					    # a default at startup by passing in a `dict` but yet you can set
 | 
				
			||||||
 | 
					    # that value through assignment..for wtv cucked reason.. honestly, pure
 | 
				
			||||||
 | 
					    # unintuitive garbage.
 | 
				
			||||||
 | 
					    size_unit: str = 'currency'
 | 
				
			||||||
    _size_units: dict[str, Optional[str]] = _size_units
 | 
					    _size_units: dict[str, Optional[str]] = _size_units
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @validator('size_unit')
 | 
					    @validator('size_unit', pre=True)
 | 
				
			||||||
    def lookup_key(cls, v):
 | 
					    def maybe_lookup_key(cls, v):
 | 
				
			||||||
        # apply the corresponding enum key for the text "description" value
 | 
					        # apply the corresponding enum key for the text "description" value
 | 
				
			||||||
        return v.name
 | 
					        if v not in _size_units:
 | 
				
			||||||
 | 
					            return _size_units.inverse[v]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assert v in _size_units
 | 
				
			||||||
 | 
					        return v
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # TODO: if we ever want ot support non-uniform entry-slot-proportion
 | 
					    # TODO: if we ever want ot support non-uniform entry-slot-proportion
 | 
				
			||||||
    # "sizes"
 | 
					    # "sizes"
 | 
				
			||||||
| 
						 | 
					@ -157,6 +165,9 @@ class Allocator(BaseModel):
 | 
				
			||||||
            slot_size = currency_per_slot / price
 | 
					            slot_size = currency_per_slot / price
 | 
				
			||||||
            l_sub_pp = (self.currency_limit - live_cost_basis) / price
 | 
					            l_sub_pp = (self.currency_limit - live_cost_basis) / price
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            raise ValueError(f"Not valid size unit '{size}'")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # an entry (adding-to or starting a pp)
 | 
					        # an entry (adding-to or starting a pp)
 | 
				
			||||||
        if (
 | 
					        if (
 | 
				
			||||||
            action == 'buy' and live_size > 0 or
 | 
					            action == 'buy' and live_size > 0 or
 | 
				
			||||||
| 
						 | 
					@ -266,7 +277,7 @@ def mk_allocator(
 | 
				
			||||||
    # default allocation settings
 | 
					    # default allocation settings
 | 
				
			||||||
    defaults: dict[str, float] = {
 | 
					    defaults: dict[str, float] = {
 | 
				
			||||||
        'account': None,  # select paper by default
 | 
					        'account': None,  # select paper by default
 | 
				
			||||||
        'size_unit': _size_units['currency'],
 | 
					        'size_unit': 'currency', #_size_units['currency'],
 | 
				
			||||||
        'units_limit': 400,
 | 
					        'units_limit': 400,
 | 
				
			||||||
        'currency_limit': 5e3,
 | 
					        'currency_limit': 5e3,
 | 
				
			||||||
        'slots': 4,
 | 
					        'slots': 4,
 | 
				
			||||||
| 
						 | 
					@ -281,8 +292,8 @@ def mk_allocator(
 | 
				
			||||||
    # load and retreive user settings for default allocations
 | 
					    # load and retreive user settings for default allocations
 | 
				
			||||||
    # ``config.toml``
 | 
					    # ``config.toml``
 | 
				
			||||||
    user_def = {
 | 
					    user_def = {
 | 
				
			||||||
        'currency_limit': 5e3,
 | 
					        'currency_limit': 6e3,
 | 
				
			||||||
        'slots': 4,
 | 
					        'slots': 6,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    defaults.update(user_def)
 | 
					    defaults.update(user_def)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue