Prepare the Dough: Mix flour, sugar, and a pinch of salt in a bowl. Add butter or lard and enough sweet wine or water to form a firm dough.
Knead and Rest: Knead until smooth, wrap the dough, and refrigerate for 30–60 minutes.
Roll the Dough: Roll the dough very thinly and cut it into circles or ovals.
Shape the Shells: Wrap each piece around a metal cannoli tube, sealing the overlapping edges with a little beaten egg.
Fry the Shells: Heat oil to approximately 175–180°C (350–355°F). Fry the shells until golden and crisp, then drain on paper towels.
Cool the Shells: Allow the shells to cool before carefully removing the metal tubes.
Prepare the Filling: Mix well-drained ricotta cheese with powdered sugar until smooth. Fold in chocolate chips or citrus zest if desired.
Fill the Cannoli: Transfer the filling to a piping bag and fill each shell just before serving to preserve its crispness.
Garnish and Serve: Dust with powdered sugar and decorate the ends with chopped pistachios or chocolate chips.