pytorch/tools/codegen
Edward Yang 0c64f9f526 Convert from higher order functions to classes in tools.codegen.gen (#47008)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/47008

bhosmer has been complaining about how it is difficult to distinguish
between local variables and closed over variables in the higher order
functions.  Well, closures and objects do basically the same thing, so
just convert all these HOFs into objects.

The decoder ring:
- Higher order function => Constructor for object
- Access to closed over variable => Access to member variable on object
- with_native_function => method_with_native_function (because it's
  hard writing decorators that work for both functions and methods)

I didn't even have to change indentation (much).

When there is no need for closed over variables (a few functions), I
kept them as plain old functions, no need for an object with no
members.

While I was at it, I also deleted the kwargs, since the types are
enough to prevent mistakes.

Signed-off-by: Edward Z. Yang <ezyang@fb.com>

Test Plan: Imported from OSS

Reviewed By: albanD

Differential Revision: D24600805

Pulled By: ezyang

fbshipit-source-id: 7e3ce8cb2446e3788f934ddcc17f7da6e9299511
2020-11-11 10:30:50 -08:00
..
api [pytorch] factor out return_names api (#47437) 2020-11-09 12:39:37 -08:00
selective_build [RFC] Switch PyTorch Selective Build (Custom Build) to use the SelectiveBuilder abstraction (#45722) 2020-10-18 15:10:42 -07:00
__init__.py Rewrite of ATen code generator (#42629) 2020-08-31 09:00:22 -07:00
code_template.py Rewrite of ATen code generator (#42629) 2020-08-31 09:00:22 -07:00
gen.py Convert from higher order functions to classes in tools.codegen.gen (#47008) 2020-11-11 10:30:50 -08:00
local.py Byte-for-byte compatibility fixes in codegen (#44879) 2020-09-25 08:06:50 -07:00
model.py Revert D24737050: [WIP] Adding bunch of unary foreach APIs 2020-11-10 09:41:41 -08:00