Deprecate Conditions and Triggers Saved in handler Callable; Save Condition in signal.extra Instead (#2608)
				
					
				
			This commit is contained in:
		| @@ -154,9 +154,7 @@ class SignalRouter(BaseRouter): | |||||||
|         try: |         try: | ||||||
|             for signal in signals: |             for signal in signals: | ||||||
|                 params.pop("__trigger__", None) |                 params.pop("__trigger__", None) | ||||||
|                 requirements = getattr( |                 requirements = signal.extra.requirements | ||||||
|                     signal.handler, "__requirements__", None |  | ||||||
|                 ) |  | ||||||
|                 if ( |                 if ( | ||||||
|                     (condition is None and signal.ctx.exclusive is False) |                     (condition is None and signal.ctx.exclusive is False) | ||||||
|                     or (condition is None and not requirements) |                     or (condition is None and not requirements) | ||||||
| @@ -219,8 +217,13 @@ class SignalRouter(BaseRouter): | |||||||
|         if not trigger: |         if not trigger: | ||||||
|             event = ".".join([*parts[:2], "<__trigger__>"]) |             event = ".".join([*parts[:2], "<__trigger__>"]) | ||||||
|  |  | ||||||
|  |         try: | ||||||
|  |             # Attaching __requirements__ and __trigger__ to the handler | ||||||
|  |             # is deprecated and will be removed in v23.6. | ||||||
|             handler.__requirements__ = condition  # type: ignore |             handler.__requirements__ = condition  # type: ignore | ||||||
|             handler.__trigger__ = trigger  # type: ignore |             handler.__trigger__ = trigger  # type: ignore | ||||||
|  |         except AttributeError: | ||||||
|  |             pass | ||||||
|  |  | ||||||
|         signal = super().add( |         signal = super().add( | ||||||
|             event, |             event, | ||||||
| @@ -232,6 +235,7 @@ class SignalRouter(BaseRouter): | |||||||
|         signal.ctx.exclusive = exclusive |         signal.ctx.exclusive = exclusive | ||||||
|         signal.ctx.trigger = trigger |         signal.ctx.trigger = trigger | ||||||
|         signal.ctx.definition = event_definition |         signal.ctx.definition = event_definition | ||||||
|  |         signal.extra.requirements = condition | ||||||
|  |  | ||||||
|         return cast(Signal, signal) |         return cast(Signal, signal) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Zhiwei
					Zhiwei